用 delphi 5 编程,如何使主板的小喇叭鸣叫?(50分)

  • 主题发起人 主题发起人 winnin
  • 开始时间 开始时间
W

winnin

Unregistered / Unconfirmed
GUEST, unregistred user!
用 delphi 5 编程,如何使主板的小喇叭鸣叫?
 
BOOL Beep(
DWORD dwFreq, // sound frequency, in hertz
DWORD dwDuration // sound duration, in milliseconds
);


 
一个beep;就可以了。。。
 
明天给你
 
NT,2000,XP下:
函数Beep(dwFreq, dwDuration)其中,dwfreq为声音频率,单位为赫兹,dwDuration为声音长度,单位为毫秒
Win9X下:
function _GetPort(address:word):word;//获取端口
var
bValue: byte;
begin
asm
mov dx, address
in al, dx
mov bValue, al
end;
Result := bValue;
end;
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;
procedure StartBeep(Freq : Word);//开始发音,Freq为频率
var
B: Byte;
begin
if Freq > 18 then
begin
Freq := Word(1193181 div LongInt(Freq));
B := Byte(_GetPort($61));
if (B and 3) = 0 then
begin
_SetPort($61, Word(B or 3));
_SetPort($43, $B6);
end;
_SetPort($42, Freq);
_SetPort($42, Freq shr 8);
end;
end;
procedure StopBeep;//停止发音
var
Value: Word;
begin
value := _GetPort($61) and $FC;
_SetPort($61, Value);
end;
 
Beep这个Windows 的 API 函数能令音箱发出声音.但令主板上的小喇叭鸣叫是不能的.

还有没有其他方法?
 
MessageBeep(0)
 
后退
顶部