web-dev-qa-db-ja.com

Windows7のデフォルトのオーディオデバイスを変更する

C#を使用してプログラムでWindows 7のデフォルトのオーディオ出力デバイスを変更できるようにしたい(そしておそらくいくつかの基盤となるWin32 API呼び出しも)。私はすでに宿題を済ませており、さまざまな情報源からさまざまなコメントを聞いているので、正直な答えを得るためにもう一度この質問をしたいと思いました。これは実際に可能ですか(anyは意味します)?もしそうなら、私はこれをどのように行うのですか?

また、「AutoIt」やその他の同様のプログラムを使用した解決策を提案しないでください...これはC#/。NET固有の質問です。

19
qJake

将来誰かがこのスレッドに出くわした場合に備えて...ドキュメント化されていないWin32APIを呼び出すことでそれを実行するC++コードを次に示します。これはEXEにコンパイルしてから、.NETアプリケーションからサイレントに呼び出すことができるため、このコードを中心に.NETプログラムを構築できます。

http://www.daveamenta.com/2011-05/programmatically-or-command-line-change-the-default-sound-playback-device-in-windows-7/

13
qJake

Windows10と互換性があるという少し最新の答え。

このプログラムは美しい方法でそれを行うことができ(事前に選択されたデバイスを切り替えるためのホットキー)、C#で書かれています: GitHubのSoundSwitch

いくつかのリバースエンジニアリングでそこに到達するはずです(私の使用では、このプログラムはそのままで完璧でした)。

C++にあるそのライブラリ(同じ作成者)を利用します: GitHubのAudioEndpointLibrary

したがって、C++(私には十分ではありません)を知っている場合は、それがどのように機能するかをさらに分析することができます。または、SoundSwitchのようにライブラリを使用します。

13
Mickael V.