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

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

как работать с PC Speaker`om? [D6, Win95/98]


Tuman ©   (2002-11-04 03:59:00) 

сабж собственно


Anatoly Podgoretsky   (2002-11-04 09:03:00) [1]

Viktor Kushnir © (04.11.02 08:58) - Tuman (04.11.02 03:59)
Это устаревшая версия, сейчас в том ЧаВо опубликована, новая универсальная и с исправленной ошибкой.


Viktor Kushnir   (2002-11-04 08:58:00) [2]

А вот это когда-то пролетало в Ru.Delphi, только я это не испытовал.
procedure TForm1.mybeep(Tone: Word; Delay: Integer);
begin
asm
mov al, 0b6H
out 43H, al
mov ax,Tone
out 42h,al
ror ax,8
out 42h,al
in al, 61H
or al, 03H
out 61H, al
end;
sleep(Delay);
asm
in al, 61H
and al, 0fcH
out 61H, al
end;
end;


SottNick   (2002-11-04 08:52:00) [3]

включаем, выключаем
program PCSswitcher;

uses
windows, SysUtils;

var
bool:boolean;
s:string[5];
begin
s:=UpperCase(paramstr(1));
if s=""
then
begin
SyStemParametersInfo(SPI_GETBEEP,1,@bool,SPIF_UPDATEINIFILE);
if bool
then
begin
SyStemParametersInfo(SPI_SETBEEP,0,nil,SPIF_UPDATEINIFILE);
MessageBox(0,"PC Speaker - OFF","PC Speaker Switcher",MB_ok+mb_IconInformation);
end
else
begin
SyStemParametersInfo(SPI_SETBEEP,1,nil,SPIF_UPDATEINIFILE);
MessageBox(0,"PC Speaker - ON","PC Speaker Switcher",MB_ok+mb_IconInformation);
end;
end
else
if pos("OFF",s)<>0
then
SyStemParametersInfo(SPI_SETBEEP,0,nil,SPIF_UPDATEINIFILE)
else
if pos("ON",s)<>0
then
SyStemParametersInfo(SPI_SETBEEP,1,nil,SPIF_UPDATEINIFILE)
else
MessageBox(0,"Use command line keys:"+#13
+" /off - for Speaker OFF"+#13
+" /on - for Speaker ON"+#13
+" /? - for this HELP"
,"PC Speaker Switcher",MB_ok+mb_IconInformation);
end.


пиликаем
program PCSTest;

uses
windows;
var
i:byte;
begin
for i:=1 to 10 do
begin
MessageBeep($FFFFFFFF);
sleep(100);
end;
end.


остальным не интересовался


DC-AC   (2002-11-04 07:48:00) [4]

Через порт $0061 вроде бы... Примеры встречал, кстати, под какую ось нужно работать ?


Наверх

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