之前的之前已经分享了,windows客户端如何操作托盘图标。也就是如何控制图盘图标的闪烁。
但是突然觉得差点意思,因为不管是微信还是QQ,有了新消息,除了托盘图标闪烁外,还要配上一个风骚的铃声。
现在,就和你分享一下。
有的朋友看到这里估计会心里骂娘了,不就是尼玛一个playsound函数嘛,至于写一篇博客吗。
好,我要说的是,他说的没错,就是一个playsound函数,但是里面还是有不少的坑儿。
playsound
作用:
The PlaySound function plays a sound specified by the given file name, resource, or system event. (A system event may be associated with a sound in the registry or in the WIN.INI file.)
语法:
BOOL PlaySound(
LPCTSTR pszSound,
HMODULE hmod,
DWORD fdwSound
);
参数也很简单,不一一介绍。
第一个就是文件路径,必须是。wav文件。
第二个参数设置为NULL
第三个参数:SND_FILENAME | SND_ASYNC
要异步不要循环
这时候你窃喜了,调试,提示音完美播放。
你欣赏了自己设置的声音几遍后,突然觉得哪里不对劲了。这声音不是我设置的风骚的提示音,怎么像是系统的警告声音呢?
你会想,小case,可能是我失误,放错.wav文件了。于是你换了一个提示音文件,运行,又尼玛是系统警告的声音,你接着换了一个又一个,发现全是系统的警告声音。
你开始怀疑,是不是没播放成功呢?
重新看了这个api函数,设置一个返回值看看吧,结果返回的是true,但播放的还不是你准备的风骚的提示音。
你一怒之下,删除了你指定存放路径下的所有提示音。调试,发现,尼玛还会有声音播放。
这时候,你才恍然大悟,之前的第一个参数就没有弄对,路径找不到文件。
从现在开始,你还会说这个函数不值得写一篇博客吗?再次鸳梦重温,看看这个api官方的参数,第一个参数是这样写的:
pszSound
A string that specifies the sound to play. The maximum length, including the null terminator, is 256 characters. If this parameter is NULL, any currently playing waveform sound is stopped. To stop a non-waveform sound, specify SND_PURGE in the fdwSound parameter.
看到了,我就不解释了。
再一次为自己的莽撞付出代价~~~~
原文:http://blog.csdn.net/wangshubo1989/article/details/50850188