如何更换Windows.Beep带有可调音量扬声器的现代哔声?
答案 0 :(得分:9)
有趣的你应该问。我刚刚读到了关于窗口蜂鸣声的历史。美国残疾人法案已经迫使Beep API在过去的20年里没有改变。
对于Windows 7,我们解决了这个问题 完全 - 我们搬了所有的 以前的功能 包含在Beep.Sys中的用户 模式系统声音代理 - 现在何时 你调用Beep()API而不是 操纵8254芯片即可 重新路由到用户模式代理中 实际上播放声音。
所以简短的回答是:获取Windows 7。 更长的答案是:不要使用哔哔api。发出哔哔声并像播放任何其他噪音一样播放。
答案 1 :(得分:9)
如果要在显示MessageBox时使用Windows使用的“标准”蜂鸣声,可以调用Windows.MessageBeep(MessageID)
,其中 MessageID 映射到与MessageBox的图标ID相同的值(MB_OK,MB_ERROR等)。
这方面的一个问题是用户可以将任何声音映射到特定ID。或者
答案 2 :(得分:8)
试试这个
uses MMSystem;
procedure TForm1.Button1Click(Sender: TObject);
begin
sndPlaySound('C:\Windows\Media\sound.wav',
SND_NODEFAULT Or SND_ASYNC Or SND_LOOP);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
sndPlaySound(nil, 0); // Stops the sound
end;
答案 3 :(得分:0)
您可以使用执行ET BEEP替换蜂鸣声呼叫,ET BEEP具有各种外星人声音的编辑器。