Wednesday, January 19, 2011

How to play a standard windows sound?

How do I find out which sound files the user has configured in the control panel?

Example: I want to play the sound for "Device connected".

Which API can be used to query the control panel sound settings?

I see that there are some custom entries made by third party programs in the control panel dialog, so there has to be a way for these programs to communicate with the global sound settings.

Edit: Thank you. I did not know that PlaySound also just played appropriate sound file when specifying the name of the registry entry.

To play the "Device Conntected" sound:

::PlaySound( TEXT("DeviceConnect"), NULL, SND_ALIAS|SND_ASYNC );
  • PlaySound is the API ,also see Play System Sounds

    From titanae
  • Take a look at these articles:

    Playing .wav files using C#

    Creating Your Own Sound Alerts

  • Not Win32, but for .net anyway, you can do this using the following 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)
    
    Anthony : How about the other system sounds, like "Device connected" or "new mail"?
    Nidonocu : @Anthony I don't think you can do that within .net. You'll need to use P/Invoke for that.
    From Nidonocu

0 comments:

Post a Comment