Решение всех ваших проблем с автоматизацией Windows: AutoIt !
Поставь этот AutoIt и скомпилируй
;-----Configuration-----
;The title of the sound config window.
Dim $ConfigWindowTitle = "Sound"
;-----End of configuration----
Dim $ItemNumber = 1
If $CmdLine[0] >= 1 Then ;If we have a parameter...
$ItemNumber = $CmdLine[1] ;...we should press the button the specified number of times.
EndIf
Run("control mmsys.cpl") ;Run the sound control applet and hide it.
WinWaitActive($ConfigWindowTitle) ;Wait for it to be active before sending keystrokes.
Send("{TAB}{TAB}{TAB}{TAB}") ;Put the focus on the list
For $i = 1 to $ItemNumber Step 1
Send("{DOWN}")
Next
Send("!s") ;Press Alt + S to set the selected device as the default.
WinClose($ConfigWindowTitle)
Теперь создайте ярлык и в Target укажите путь к скомпилированному исполняемому файлу. В качестве аргумента укажите номер звукового устройства в списке, на который вы хотите переключиться. (чтобы перейти к верхнему элементу в списке, введите 1, второй элемент в списке, 2 и т. д.). Если вы хотите сочетание клавиш, используйте поле «Сочетание клавиш» в окне свойств ярлыка.
Я искал что-то, что могло бы сделать то, что вы хотели, и обнаружил, что в Vista/7 нет программного способа переключения аудиоустройств. Это не то, что Microsoft решила, что программисты должны делать, поэтому я делаю этот скрипт для автоматизации процесса. Это не лучший вариант, так как он всплывает в окне, чтобы сменить устройство (обязательно), но позволяет создавать ярлыки для изменения устройства вывода для вашего звука.