Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Звук на спикер [D7, XP]


ShyricK ©   (2007-09-04 20:33:00) 

День добрый! Подскажите пжалуста как заставить спикер системника подавать сигналы разной частоты?


Инс   (2007-09-04 21:35:00) [1]

Все равно лишнее. Функция beep из kernel32 есть на всех версиях Windows.


Инс   (2007-09-04 21:33:00) [2]

А, тут еще и проверка на номер версии. Не заметил, сорри.


Инс   (2007-09-04 21:31:00) [3]


> [2] Dib@zol ©   (04.09.07 21:26)

Это на XP ну никак не заработает :(( Правильный ответ - [1]


Dib@zol   (2007-09-04 21:26:00) [4]

procedure ExBeep(Freq {Hz}, Duration {ms} : Word);
var
 OSV : OSVERSIONINFO;
begin
 OSV.dwOSVersionInfoSize := SIZEOF(OSVERSIONINFO);
 GetVersionEx(OSV);
 if OSV.dwPlatformId = 2 then Windows.Beep(Freq, Duration)
 else begin
   asm
     movzx ecx,Freq
     mov eax,1193180
     sub edx,edx
     div ecx
     mov ecx,eax
     mov al,182
     out 43h,al
     mov al,cl
     out 42h,al
     mov al,ch
     out 42h,al
     in al,61h
     or al,3
     out 61h,al
   end;
   sleep(Duration);
   asm
     in al,61h
     and al,0fch
     out 61h,al
   end;
 end;
end;


Loginov Dmitry   (2007-09-04 21:09:00) [5]

Windows.Beep()


Наверх

Титульная страница Поиск, карта сайта Написать письмо