VBScriptでサウンドデバイスを切り替える
キーボードを、サウンドが再生できるものに変えたのですが、
基本的にシステムの音はそこから再生すれば良いですが、
参考曲などの音楽は本スピーカーの方から流したかったりします。
しかしコントロールパネルのサウンドとオーディオデバイスから、
一々デバイスを切り替えるのは面倒ですよね。
下記に掲載するコードでデバイスを簡単に切り替えてくれます。
僕の環境ではSoundMaxとUSBオーディオとMOTUオーディオのデバイスが表示されています。
このうちのSoundMaxとUSBオーディオを切り替えます。
因みにSoundMaxはアナログ端子でオーディオインターフェイスへ入力されています。
MOTUオーディオを選択しないのは、DAW使用時にシステム音もMOTUオーディオへ変えると、
48kHzなどのサンプルレートのプロジェクトの時、
プロジェクトは48kHzの設定なのにオーディオインターフェイスが強制的に44.1kHzになって、
なにかと面倒くさいからです。
スクリプトに関してですが、本当は内部からデバイスの切り替えが出来れば良かったのですが、
妥協してセンドキーにしました(笑)
ただ、なるべくWin32APIのウィンドウ関連の関数を使って少しでも誤動作が起きないようにはしてます。
Win32APIのwaveOutGetNumDevsとかwaveOutGetDevCapsあたりを調べたら内部から操作も出来そうな気もしますが、
思ったより複雑な気がします。そもそもVBSでは出来ないかもしれないし(笑)
SoundMax用VBSとUSBオーディオ用VBSを作っても良いと思いますが、
トグルにして同じファイルから切り替える形にしたかったので、
レジストリを使用して値を保存することにしました。
なので、使用される際はまずレジストリにキーを登録しないと使えません。
下記をコピペしてテキスト保存し、拡張子をregへ変更します。
☆Setup.reg
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\VBScript\Sound Device Switch] "SwitchFlag"="0"
あとは、IF文のところの変数IniStrに、切り替えたいデバイスの頭文字を入れます。
僕の場合はSoundMaxとUSBオーディオなので、「s」と「u」ですね。
それと、前回ご紹介したSFC miniが必要になります。
☆Sound Device Switch.vbs
Const REG_MYKEY = "HKCU\Software\VBScript\Sound Device Switch\SwitchFlag" Const WM_COMMAND = &H111 Dim SwitchFlag, hWnd Dim WshShell Dim IniStr Dim FindWindow, SendMessage, SetForegroundWindow Set FindWindow = CreateObject("SfcMini.DynaCall") FindWindow.Declare "user32","FindWindowA" Set SetForegroundWindow = CreateObject("SfcMini.DynaCall") SetForegroundWindow.Declare "user32","SetForegroundWindow" Set SendMessage = CreateObject("SfcMini.DynaCall") SendMessage.Declare "user32","SendMessageA" Set WshShell = WScript.CreateObject("WScript.Shell") With WshShell If .RegRead(REG_MYKEY) Then SwitchFlag = 0 IniStr = "s" Else SwitchFlag = 1 IniStr = "u" End If .Run "control MMsys.cpl ,2", 1, False Do Until hWnd <> 0 hWnd = FindWindow("#32770", "サウンドとオーディオ デバイスのプロパティ") Loop Call SetForegroundWindow(hWnd) .SendKeys IniStr, True WScript.Sleep 500 Call SendMessage(hWnd, WM_COMMAND, vbOk, 0) .RegWrite REG_MYKEY, SwitchFlag End With
- 作者: 五十嵐貴之
- 出版社/メーカー: ソシム
- 発売日: 2009/06/01
- メディア: 単行本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (27件) を見る