2008-09-16 68 views
10

如何找出用户在控制面板中配置了哪些声音文件?如何播放标准的Windows声音?

例如:我想播放“设备已连接”的声音。

哪个API可以用来查询控制面板的声音设置?

我看到有一些由控制面板对话框中的第三方程序所做的自定义条目,所以必须有一种方法让这些程序与全局声音设置进行通信。

编辑:谢谢。我不知道PlaySound在指定注册表项名称时也只是播放适当的声音文件。

打 “设备Conntected” 的声音:

::PlaySound(TEXT("DeviceConnect"), NULL, SND_ALIAS|SND_ASYNC); 
+0

如何/你在哪里找到的声音此时,相应的别名?我正在寻找“短信收到”声音的例子。 – Sam 2009-11-24 14:52:07

+0

我在注册表HKEY_CURRENT_USER \ AppEvents \ EventLabels中找到了一个列表。 – Timbo 2009-11-24 18:01:17

回答

12

不是Win32的,但对于.NET无论如何,你可以使用C#这样做如下:

System.Media.SystemSounds.Asterisk.Play(); 
// Plays the Asterisk sound (used for Information (i)) 
// Also available: 
// Exclamation (Warning /!\) 
// Hand (aka Critical Stop - Error (X)) 
// Question (?) 
// Beep (aka Default Beep)