Решение всех ваших проблем с автоматизацией 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 решила, что программисты должны делать, поэтому я делаю этот скрипт для автоматизации процесса. Это не самый лучший вариант, так как он открывает окно для изменения устройства (обязательно), но позволяет создавать ярлыки для изменения устройства вывода для вашего звука.