怎样是程序调用windows铃声(50分)

  • 主题发起人 主题发起人 xinjia
  • 开始时间 开始时间
X

xinjia

Unregistered / Unconfirmed
GUEST, unregistred user!
如果用beep只有一个声音
其它的声音入windows启动/退出/警告声音怎样调用
 

用api sndplaysound函数播放wav文件。
其中有两个参数第一个是路径,
第二个是1就行了。
 
windows.beep(n,t)
前面的windows表面使用windows单元中的beep函数,也就是Windows API中的Beep
BOOL Beep(
DWORD dwFreq, // sound frequency, in hertz
DWORD dwDuration // sound duration, in milliseconds
);

不加windows,Delphi会缺省使用SysUtils单元的beep,它是没有参数的

知道这个函数编个什么驱蚊程序就很轻松了;)
 
windows.beep(n,t)
其中n是多少呢
 
TO amo:请你看清题目,不要误导人家呀!xinjia是要调用WINDOWS的一些标准声音,不是要播放某个频率的声音。

TO xinjia:
可以调用API函数MessageBeep:
BOOL MessageBeep(
UINT uType // sound type
);
其中uType是注册表中[sounds]下的一个键,可以是以下类型:
0xFFFFFFFF // Standard beep using the computer speaker
MB_ICONASTERISK // SystemAsterisk
MB_ICONEXCLAMATION // SystemExclamation
MB_ICONHAND // SystemHand
MB_ICONQUESTION // SystemQuestion
MB_OK // SystemDefault
具体可查看Delphi帮助或者MSDN。

当然,这些声音比较少,如果你想播放更多WINDOWS声音,可以找出WINDOWS的那些声音存放路径,
然后用用API函数 sndplaysound函数播放这些wav文件:
BOOL sndPlaySound(
LPCSTR lpszSound,
UINT fuSound
);
具体用法可参看MSDN,该函数功能很强大的。肯定可以满足你的需求!
 
我试了几个参数怎么都是一个声音
 
我认为应该用PC嗽叭来发音,有的商用机器是不带音箱的,
 
sndplaysound(pchar(filename),snd_nodefault);
足够!
 
我从其它书上操来的,或有帮助,至少我理解为何PC喇叭不再响了。
MessageBeep(): 穷人的调试器
这里稍稍偏一点题,讲一下M e s s a g e B e e p ( )过程。这个过程是Win32 API中最有用和最直观
的例程之一。它的使用很简单,只要传递一个预定义的常量,Wi n d o w s就会使P C机的喇叭响一
下(如果有声卡,将演奏一个WAV文件)。MessageBeep过程经常用于调试程序。
如果想知道程序是否执行到了某个地方,但又不想劳驾调试器和断点, M e s s a g e B e e p ( )是
最适合的。因为它不需要句柄或其他任何Wi n d o w s资源,可以在代码的任何地方使用它,就像
一位著名人士曾经说的:“M e s s a g e B e e p ( )是为那些不熟悉调试器的人设计的”。如果有声卡,
只要传递一个预定义的常量给M e s s a g e B e e p ( ),就能演奏一段声音。这些常量的定义在Wi n 3 2
API帮助中MessageBeep()主题的下面。
如果觉得这个过程的名称和参数太长。也可以用S y s U t i l s单元中的B e e p ( )过程代替。
Beep()实际上调用了MessageBeep(),但参数设为0。
 
多人接受答案了。
 
后退
顶部