2008-09-16 10 views
10

Come scoprire quali file audio l'utente ha configurato nel pannello di controllo?Come riprodurre un suono standard di Windows?

Esempio: voglio riprodurre il suono per "Dispositivo connesso".

Quale API può essere utilizzata per interrogare le impostazioni audio del pannello di controllo?

Vedo che ci sono alcune voci personalizzate fatte da programmi di terze parti nella finestra di dialogo del pannello di controllo, quindi ci deve essere un modo per questi programmi di comunicare con le impostazioni audio globali.

Modifica: Grazie. Non sapevo che PlaySound riproducesse anche il file audio appropriato quando si specificava il nome della voce di registro.

Per riprodurre il "Device Conntected" suono:

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

Come/dove hai trovato il nome alias appropriata del suono? Sto cercando ad esempio il suono "sms ricevuto". – Sam

+0

Ho trovato un elenco nel registro HKEY_CURRENT_USER \ AppEvents \ EventLabels. – Timbo

risposta

12

Non Win32, ma per .net in ogni caso, è possibile farlo utilizzando il seguente in 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) 
+3

Come su altri suoni di sistema, come "Device connected" o "new mail"? – Anthony

+0

@Anthony Non penso che tu possa farlo entro .net. Avrai bisogno di usare P/Invoke per quello. – Nidonocu

Problemi correlati