![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Привет!
Проблема такова: Как можно отрубить звуки, издаваемые моей прогой? Допустим, в ней есть флэшка, в которой есть разные звуки при нажатиях на разные кнопки, я не имею возможности редактировать флэшку, но могу что угодно сделать в движке проги, которая написана на Delphi, естественно. Весь код, связанный с проигрыванием звуков находится во флэшке, но мне нужно отрубиь его дельфовыми методами, можно ли это как-нибудь сделать? |
|
#2
|
||||
|
||||
|
Код:
procedure NoSound; var Value: Word; begin Value := GetPort($61) and $FC; SetPort($61, Value); end; Если не то скажи! |
|
#3
|
||||
|
||||
|
Нет, это не совсем то, я так понял, это отключает звуквовсей системе,а нужно отрубат звук, издаваемый конкретной программой, все равно спасибо.
Проблема решена. |
|
#4
|
||||
|
||||
|
Подозреваю что совсем это не просто. Звуковой драйвер винды микширует весь звук в один звуковой поток. Следовательно нужно отлавливать моменты обращения процесса к Api функциям ответственным за воспроизведение звука и блокировать их выполнение.
|
|
#5
|
||||
|
||||
|
Ну, например в винампе подобное реализовано,ладно, ребят, спасибо за ансверы, тему можно закрывать, я уже все сделал во флэше.
|
|
#6
|
||||
|
||||
|
А какой модуль надо подключить для функций GetProt и SetPort.
|
|
#7
|
||||
|
||||
|
Код:
procedure SetPort(address, Value:Word);
var
bValue: byte;
begin
bValue := trunc(Value and 255);
asm
mov dx, address
mov al, bValue
out dx, al
end;
end;
function GetPort(address:word):word;
var
bValue: byte;
begin
asm
mov dx, address
in al, dx
mov bValue, al
end;
GetPort := bValue;
end; |