single.php

JScriptでサウンドの有効・無効化を変更する方法

先回、VBScriptで、サウンドの既定値を切り替える自動化を作ってみましたが、JScriptでも同じ操作ができたので備忘録的に投稿します。JavaScriptではなくJScriptです。念のため。

VBScriptでサウンドの再有効化

先回、VBScriptでサウンドデバイスの有効化と無効化を繰り返すスクリプトで自動化をしてみました。

Windowsでは、他にもJScriptというスクリプト言語が利用可能です。ほとんど同じ記述ですが、少しだけ書式が異なります。

JScriptでサウンドデバイスの有効・無効化

Windowsで音声の再生デバイスの有効化と無効化は[サウンド]画面で行います。先回のデバイスの切り替えと違い、マウスの右クリックで操作が必要になるので少し工夫が必要です。

実際に自動化してみたのが、次のJScript。

var WshShell = new ActiveXObject("WScript.Shell");

WshShell.Run("control mmsys.cpl");

WScript.Sleep(5000);

WshShell.SendKeys("{DOWN}");
WshShell.SendKeys("+{F10}");
WshShell.SendKeys("{DOWN}");
WshShell.SendKeys("{DOWN}");
WshShell.SendKeys("{ENTER}");

WshShell.SendKeys("{DOWN}");
WshShell.SendKeys("+{F10}");
WshShell.SendKeys("{DOWN}");
WshShell.SendKeys("{DOWN}");
WshShell.SendKeys("{ENTER}");

WScript.Sleep(1000);

WshShell.SendKeys("{ENTER}");

私が運用している環境の場合、最上段の[ライン]を既定値として利用しています。この既定値を一旦、無効にしてから再度有効化の操作を行います。

VBScriptではCreateObjectでオブジェクトを作成する部分は、JScriptではActiveXObjectになります。

その他、行末を示すためのセミコロン(;)やメソッドやプロシージャーの引数は括弧を使って記載を行います。

var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("control mmsys.cpl");

例えば、このコードで[サウンド]画面が表示されます。

次のコードで処理を中断します(設定している”5000″は5秒です)

WScript.Sleep(5000);

その後に、仮想的に[↓]キーを入力して、最上段のデバイスをアクティブにしてから[+{F10}]でマウスの右クリックをして表示されるポップアップメニューを表示します。

続けて[↓]キーを2回入力して[無効化]メニューを選択して。{ENTER} でメニューの決定をします。

WshShell.SendKeys("{DOWN}");
WshShell.SendKeys("+{F10}");
WshShell.SendKeys("{DOWN}");
WshShell.SendKeys("{DOWN}");
WshShell.SendKeys("{ENTER}");

再度、有効化を行うために、同じキーを入力後、しばらく時間を置いて[ENTER]キーで[サウンド]画面を閉じます。

WshShell.SendKeys("{DOWN}");
WshShell.SendKeys("+{F10}");
WshShell.SendKeys("{DOWN}");
WshShell.SendKeys("{DOWN}");
WshShell.SendKeys("{ENTER}");

WScript.Sleep(1000);
WshShell.SendKeys("{ENTER}");

最後に、拡張子を(.js)にして保存します。

保存したファイルを次のように実行することでデバイスの無効化と有効化を自動化できます。

cscript.exe <JScriptを保存したファイルの場所>

まとめ

JScriptファイルを使って再生デバイスの無効化と有効化の自動化することができました。

[サウンド]画面の操作を自動化したい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です