2008-09-16 110 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)