Windows(XP)の、サウンドの「既定のデバイス」をプログラムで変更するにはどうすればいいのか、ずっとわからずにいたのだが、実験してたら、わかりました。
レジストリを変更すればいいのね…。
HKEY_CURRENT_USER\Software\Microsoft\multimedia\sound mapper\Playback
HKEY_CURRENT_USER\Software\Microsoft\multimedia\sound mapper\Record
それぞれ、変更したいデバイス名に変えてやればいい。書き換えた瞬間にサウンドマッパーはそれを「既定のデバイス」にする。
専用のWindowsAPIがあるもんだとばっかり思ってたよ…。
まあ、これでやっと、『WindowsXPのサウンドの「既定のデバイス」強制復元プログラム』を作ることができた。
追記。サウンドデバイスが1個ずつしかないようなマシンの場合、(必要がないので)上記soundmapperのキーは存在していないようだ。その場合、「既定のデバイスのみ使用する」チェックボックスにチェックを入れると、キーが作成される。
コメント
はじめまして。
同じ悩みがありまして、ググってこのブログにたどり着きました。
ありがたく参考にさせて頂きます。
当方の環境では、BT機器接続時に自動で任意のアプリを起動できるので、
起動アプリ上からレジストリをいじるようにしてみます。
BT機器による書き換えのタイムラグなどを考慮すると、
waitとかが必要になるかもしれませんが。
それでは。
はじめまして~、しゃっくといいます。
同じ悩みを持ってたのでとても参考になりました。
しかし、公開されているプログラムを使ってみたところ、
起動時とは異なる設定に書き換わるという現象が出てしまいました。
<起動時>
Sound Blaster Live! 24-bit
<ヘッドセット接続時>
TOSHIBA Bluetooth Wave
<プログラムでの書き換え時?>
SoundMAX Digital Audio
原因など調査していません。
レジストリのアクセス権で「値の設定」を拒否にしておくと
そもそもの書き換えを回避できることが分かったからです。
(Bluetooth Manager のソフトによってはエラーになる等
あるのかもしれませんが。。。)
とにかく問題は回避できたようです^^
ここの情報が無ければ辿り着くまでに時間がかかってたと思います。
ありがとうございました。<(_ _)>
なるほど、レジストリのアクセス権で済ますってのも手ですね!