Изменение звукового устройства по умолчанию на Windows 7
Я хочу иметь возможность автоматически менять устройство вывода звука по умолчанию на Windows 7 с помощью С# (и, возможно, некоторых основных вызовов Win32 API). Я уже сделал домашнее задание, и я слышал много смешанных комментариев из разных источников, поэтому я снова хотел задать этот вопрос, чтобы получить прямой ответ. Действительно ли это возможно (любыми средствами)? Если да, то как мне это сделать?
И, пожалуйста, не предлагайте решение с помощью "AutoIt" или какой-либо другой подобной программы... это вопрос с С#/. NET.
Ответы
Ответ 1
На всякий случай кто-то наткнется на этот поток в будущем... вот некоторый код на С++, который сделает это, вызвав некоторые недокументированные API Win32. Это можно скомпилировать в EXE, а затем тихо позвонить из приложения .NET, чтобы вы могли создать .NET-программу вокруг этого кода.
http://www.daveamenta.com/2011-05/programmatically-or-command-line-change-the-default-sound-playback-device-in-windows-7/
Ответ 2
Немного актуальный ответ, который совместим с Windows 10.
Эта программа способна сделать это красиво (горячая клавиша для переключения между предварительно выбранными устройствами) и написана на С#:
SoundSwitch на GitHub
Некоторая обратная инженерия должна получить вас там (для моей пользы эта программа была просто идеальна, как есть).
Он использует эту библиотеку (тот же автор), которая находится в С++:
AudioEndpointLibrary на GitHub
Итак, если вы знаете С++ (чего мне не хватает), вы можете пойти дальше в анализе того, как это работает. Или просто используйте библиотеку, например SoundSwitch.
Ответ 3
Вот пример некоторого управляемого кода С++, который делает это: http://www.codeproject.com/KB/system/AudioConfigurationManager.aspx
Вы можете вызвать этот код из С#.