1

Я не знаю, может ли это быть довольно программный вопрос, поэтому я открыл соответствующий (и немного другой) вопрос в StackOverflow. Кстати, я отправлю ответ здесь, если получу его.

Мне нужно получить имя доступных записывающих устройств для моей Windows (SoundMAX HD Audio I в этом примере):

Пример устройства записи звука

Но мне нужно делать это через командную строку, если это возможно, если я обычно подключаюсь к компьютеру (компьютерам) через консоль удаленного терминала (SSH).

Как я мог решить это?

Мне нужны методы как для Windows XP, так и для Vista (и более поздних версий), но по крайней мере для Vista.
Допускается дополнительное программное обеспечение . Открытый исходный код предпочтителен, но не обязателен.

1 ответ1

2

Только для Vista и выше: загрузите SoundVolumeView (бесплатный и переносимый, но не с открытым исходным кодом) и используйте его вместе со следующим пакетным файлом:

SoundVolumeView /scomma Audio.txt
for /f "tokens=1 delims=," %%d in ('type Audio.txt ^| find "Capture"') do @echo Default recording device is: "%%d"

В Windows 7 строковое значение REG_SZ с именем {a45c254e-df1c-4efd-8020-67d146a850e0}, 2 под каждым ключом HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\{GUID}\Properties содержит имя ключа соответствующее устройство записи / захвата, зарегистрированное в системе.

Вы можете получить все имена устройств записи / захвата следующим образом:

for /f "tokens=9 delims=\" %a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture" /s ^| find "\Properties"') do @for /f "tokens=2*" %k in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\%a\Properties" /v "{a45c254e-df1c-4efd-8020-67d146a850e0},2"') do @echo "%l"

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