サウンドデバイスの既定値を変更するAutoHotKeyスクリプト



USBスピーカーとヘッドホンを使い分けるとき、コントロールパネルのサウンドからいちいち指定するのも面倒だし、かといってUSB引っこ抜くってのもスマートじゃないしなあ、と思って調べてみた。

どうやらレジストリやCOMオブジェクトをいじればよさそうなんだけど、そこまで調べてテストしてって時間かけるほどのことでもないと。

結論。
サウンドのショートカット作ってウィンドウ開いて、キー操作を送ってやればいい。
そうするとAutoHotKeyの出番でございますね。

注:Windows7以外の検証はしておりません。

Image_computer/sounddevice_1.jpg

まずショートカットをデスクトップに作って、名前をsound.lnkに変更。
スクリプトと同じ場所におく。


Image_computer/sounddevice_2.jpg

順番を調べる。


スクリプトとしては、

;SoundDevice Default Changer
;by Junya Renno

;中の数字で順番を指定
SoundDeviceDown(1)

exit

SoundDeviceDown(num){
;サウンドのショートカットの場所を指定
SetWorkingDir,%A_ScriptDir%
Run,.\sound.lnk

;以下はキー操作
sleep,300
Send,{Down %num%}
sleep,800
Send,!s{enter}

return
}

みたいな感じで。
タイミングはsleepの数字で調整するってことで。
それぞれデバイスごとにスクリプトを保存しておいて、使ってるランチャに登録しておく。
自分で使う分は一応exe化したけど、そこらへんは好みで。常駐でキーで呼び出すとか。


Image_computer/sounddevice_3.jpg

これで充分だな。


追記:プレイヤーによってはいったん再生を停止しないと切り替わらないものもある。

 

コメントは日本語でお願いします。(URLは入力禁止:Do not URL writing.) :System message: コメントを受けつけています。