How to change default sound playback device programmatically?

System Tray Audio Device Switcher uses "Software\Microsoft\Multimedia\Sound Mapper", "Playback" to set the index of the sound device which was obtained by enumeration the devices.
mciSendCommand from “winmm.dll” is also used

In this source code you will find the registry keys used to achieve that.

If this doesn’t work you could give Process Monitor a try and monitor all registry activities of windows when you change the default device. On my Vista installation the control panel twiddles with "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render\"

For Vista see
http://www.vistaaudiochanger.com/

Leave a Comment