2008-09-16 8 views
10

Comment puis-je connaître les fichiers son que l'utilisateur a configurés dans le panneau de contrôle? Exemple: Je souhaite jouer le son pour "Device connected".Comment lire un son Windows standard?

Quelle API peut être utilisée pour interroger les paramètres sonores du panneau de commande?

Je vois qu'il y a des entrées personnalisées faites par des programmes tiers dans la boîte de dialogue du panneau de contrôle, donc il doit y avoir un moyen pour ces programmes de communiquer avec les paramètres de son globaux.

Modifier: Merci. Je ne savais pas que PlaySound aussi juste joué le fichier son approprié lors de la spécification du nom de l'entrée de registre.

Pour jouer le "Device Conntected" son:

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

Comment/où trouvez-vous le nom d'alias du son correspond le? Je cherche par exemple le son "sms received". – Sam

+0

J'ai trouvé une liste dans le registre à HKEY_CURRENT_USER \ AppEvents \ EventLabels. – Timbo

Répondre

12

Non Win32, mais pour .net de toute façon, vous pouvez le faire en utilisant les éléments suivants en 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

Que diriez-vous des autres sons du système, comme "Device connected" ou "new mail"? – Anthony

+0

@Anthony Je ne pense pas que vous pouvez le faire dans .net. Vous devrez utiliser P/Invoke pour cela. – Nidonocu

Questions connexes