16

Я пытаюсь написать командный файл в Windows 10, который позволяет мне переключаться между гарнитурой и динамиками в качестве аудиоустройства по умолчанию при его запуске. Я не хочу использовать стороннее программное обеспечение.

Я пробовал искать, но нашел только старые скрипты, которые, похоже, не работают, а также ссылаются на путь HKCU:\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\ , который, кажется, больше не существует. Я не могу найти какую-либо информацию в реестре Windows 10 об этом, также я не слишком доволен работой с реестром, если я не уверен в том, что я делаю.

2 ответа2

22

Я ценю, что вы не хотите использовать какое-либо стороннее программное обеспечение, но в качестве опции, если вы не возражаете против использования ~ 100kb exe, вы можете использовать Nircmd с командами:

nircmd setdefaultsounddevice "Speakers" 1

или же

nircmd setdefaultsounddevice "Headphones" 1

Вам необходимо убедиться, что вы используете точное название ваших аудиоустройств, как указано в разделе « Playback Devices (щелкните правой кнопкой мыши элемент управления звуком в системном трее). Может быть проще переименовать их в Properties на более простые имена, особенно если имена конфликтуют каким-либо образом.

1 в конце команды означает "Устройство по умолчанию". Использование 2 означает "Устройство связи по умолчанию".


Если вы действительно не хотите использовать сторонний инструмент, вот разница в ключе реестра, который, кажется, меняется, когда я меняю свое звуковое устройство по умолчанию, он может быть вам полезен, но я не знаю точно, что это делает. Казалось бы, это не так просто, как 1 или 0, чтобы указать, является ли это значением по умолчанию.

6

Начиная с Windows 8 (а может и раньше?) Аудио конфигурация ПК хранится в папке HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render . В разделе Render есть ключи с именами GUID, каждый из которых содержит значение DeviceState DeviceState в корневом каталоге. Но как это закодировано?

Смотрите DEVICE_STATE_XXX Константы на MSDN:

  • 1 активный
  • 2 Отключено
  • 4 нет
  • 8 отключен

Так что скрипт powershell/bat для переключения между 1 и 2 должен сделать свое дело.

РЕДАКТИРОВАТЬ: Чтобы получить удобочитаемое имя устройства, прочитайте {b3f8fa53-0004-438e-9003-51a46e139bfc},6 в подразделе Properties

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .