请问 怎么在DELPHI中 使用计算机蜂鸣器发声是怎么做(30分)

  • 主题发起人 主题发起人 我不怕你
  • 开始时间 开始时间

我不怕你

Unregistered / Unconfirmed
GUEST, unregistred user!
就是没有声卡 可以发出‘be be'的那个
 
Beep;
MessageBeep(0);
 
谢谢 可是你提供的 还是需要有音箱的 我是想 得到CMOS里
出错就发出的声音的那个啊
 
windows.beep(2000,2000);
 
你可能搞错了,有些系统,如果有声卡的话声音是从音响出来的。beep可以的!
 
在98下messagebeep(0)好像就是用pc喇叭发出来的声音,2000下怎么会是声卡的声音
那个windows.beep(2000,2000);实在有点恐怖,做病毒不错,开机循环1000000次
哈哈,祝大家圣诞快乐…
 
windows.beep(2000,2000); //前一个参数是频率,后一个是时延。可以自己调整。这两个参数在在win98下会被忽略。
 
beep绝对可以!不是从声卡里发出来的!
 
beep函数在有声卡和音箱的情况下是通过音箱发声的。如果没有就通过蜂鸣器发声。
 
问题是我想在有声卡的情况下 通过蜂鸣器发声

不知道有没可行的方法

如果分不够 我在以后的问题中 给大家都加的分
 
windows.beep(2000,200); 是否试过?
 
我在有声卡的机子上试了后 只能在声卡中听见声音

我想maxctc说得好象比较对 有声卡的机子上可能是声卡优先吧?

 
怎么会,我的机器也有声卡,怎么能听见。
你的系统是Win9x还是Win2k?
 
我家里是win2k 在网吧 是winme

家里的机子上可能蜂鸣器没接

但是网吧的有接啊
 
WinMe和Win9x是一样的,用beep确实不行。
Win9x/me下可以这样:

procedure TMainForm.sound(mhz: integer); {mhz = the frequency of the pc speakerPC喇叭发声,只适用于Win9X}
var
count : word;
begin
try
count := 1193280 div mhz;
asm
mov al,$b6
out $43,al
mov ax,count
out $42,al
mov al,ah
out $42,al
mov al,3
out $61,al
end;
except
;
end;
end;

procedure TMainForm.nosound; {turn off the pc speaker关闭PC喇叭,只适用于Win9X}
begin
asm
mov al,0
out $61,al
end;
end;

//但在Win2k下windows.beep(2000,200); 绝对可行。
 
ok 谢谢 我试试
 
接受答案了.
 
后退
顶部