Windows: オーディオ録音デバイスの名前を確認するためのコマンドライン メソッドはありますか?

Windows: オーディオ録音デバイスの名前を確認するためのコマンドライン メソッドはありますか?

これはプログラミングに関する質問になるかどうかわからないので、関連する(少し異なる)質問をこちらで開きました。 スタックオーバーフローちなみに、答えが得られたらここに投稿します。

する必要がある利用可能な録音の名前を取得する私の Windows のデバイス (SoundMAX HD Audio Iこの例では):

オーディオ録音デバイスの例

でも、やらなきゃいけないコマンドライン経由可能であれば、通常はリモート端末(SSH) コンソール。

これをどう解決すればいいでしょうか?

私は方法が必要ですWindows XPとVistaの両方(およびそれ以降のバージョン)、少なくとも Vista ではそうです。
追加ソフトウェア許可されています。オープンソースが望ましいですが、必須ではありません。

答え1

Vista以降のみ: ダウンロードサウンドボリュームビュー(無料で移植可能ですが、オープンソースではありません)、次のバッチ ファイルと一緒に使用します。

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},2HKEY_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"

関連情報