ようこそ!逆襲のニートブログへ

ブログ内検索

最近の記事

はてなブックマーク数

この日記のはてなブックマーク数

カテゴリー

月別アーカイブ

Windows10のWindows Media PlayerをVBSで閉じる方法

Windows Media Playerをすぐに閉じたい場合があります。
なので、キーボードショートカットで閉じる方法を調べてみました。

結論としては、
(1) VBS(Visual Basic Scripti)を書く。
(2) キーボードショートカットを割り当てる。
(3) USBフットスイッチに割り当てる。
という手順でやりたいことが実現できました。

一応備忘録としてメモしておきます。

(1) VBSを書く。


(参考)
[WMI for VBS] アプリケーション、プロセスを終了するサンプルスクリプト: Win32_Process - WMI Sample
上記ページで紹介されているサンプルスクリプトを少し変更します。

'クエリー条件を WQL にて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_Process Where Description=""notepad.exe""")



notepad.exe
となっている部分を
wmplayer.exe
に変更します。

Windows Media Playerのプログラムが実行されているとき、プログラムのプロセス名(CPUで管理されているプログラムの名前)は「wmplayer.exe」という文字列みたいです。

他のアプリを指定したい場合は、タスクマネージャーで確認します。
[Ctrl]+[Alt]+[Delete]キーを押す → 「タスクマネージャー」をクリックすると、タスクマネージャーが起動します。

「プロセス」のタブを開いて、指定したいアプリを右クリックします。
(例)
ここでは「Windows Media Player」を右クリックします。
表示されたダイアログボックスの中にある「詳細の表示」という項目をクリックします。
すると、タスクマネージャーの「プロセス」タブから「詳細」タブへ表示が切り替わって、「wmplayer.exe」というプログラムが灰色の反転表示になっています。
この「wmplayer.exe」が設定のときに使うプログラムのプロセスの名前です。

以下のように修正しておきます。

Option Explicit

'WMIにて使用する各種オブジェクトを定義・生成する。
Dim oClassSet
Dim oClass
Dim oLocator
Dim oService
Dim sMesStr

'ローカルコンピュータに接続する。
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer
'クエリー条件を WQL にて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_Process Where Description=""wmplayer.exe""")
'コレクションを解析する。
For Each oClass In oClassSet

oClass.Terminate

'MsgBox "PID が" & CStr(oClass.ProcessId) & "のメモ帳のプロセスを終了しました。"

Next

'使用した各種オブジェクトを後片付けする。
Set oClassSet = Nothing
Set oClass = Nothing
Set oService = Nothing
Set oLocator = Nothing



プログラムを終了したときのお知らせメッセージは不要だったので、
上記プログラムで「MsgBox "PID が" & CStr(oClass.ProcessId) & "のメモ帳のプロセスを終了しました。"」
の部分は、行頭に「'」(シングルクオート)を付けて、コメントアウトしておきました。

この内容を「close_wmplayer.vbs」などというファイル名で保存しておきます。
ファイルの文字コードは「SJIS」にしておきます。
※メッセージの表示部分に日本語の文字を使用している場合、文字コードを「UTF-8」で保存しておくと、エラーメッセージが出る場合があります。
※メッセージの表示部分に日本語の文字を使用しないで英数字などだけを使用している場合、文字コードを「UTF-8」で保存してもOKです。
※メッセージ表示の処理(MsgBox~の行)をコメントアウトまたは削除している場合も日本語文字は関係ないので、文字コードをUTF-8にしておいてもOKです。
※コメント行の日本語はプログラムの実行には影響がないので、UTF-8で保存しても、コメントには日本語を記述してOKです。

とりあえず、文字コードは「SJIS」で保存しておきましょう。

●動作確認
1. Windows Media Playerを開いて、音楽や動画などを再生してみます。
2. 「close_wmplayer.vbs」ファイルをダブルクリックしてみます。
3. Windows Media Playerが終了する(閉じる)と、成功です!

もしも、終了しない場合は、プログラムの記述で誤りがないか再度確認してみましょう。

(2) キーボードショートカットを割り当てる。


(参考)
ショートカットキーでVBSを実行したいときに | ワードマクロの世界

上記(1)で作ったVisualBasicスクリプトのファイル「close_wmplayer.vbs」を右クリックして、
ダイアログボックスから「ショートカットの作成」をクリックします。

ショートカットのアイコンができたら、それを右クリックして、「プロパティ」を選びます。
「ショートカット」タブの中の「ショートカットキー」という項目を選びます。
ここで、何か適当なキーボードのボタンを押すと、ショートカットキーの組合せを指定できます。
(例) Ctrl + Shit + F12 など

Windows Media Playerを閉じるVBSのショートカット

ショートカットを指定したら、OKボタンをクリックします。

これで作成したVBSをキーボードのショートカットで呼び出すことができるようになりました。

●動作確認
1. Windows Media Playerを開いて、音楽や動画などを再生してみます。
2. キーボードで「Ctrl + Shit + F12」などと入力してみます。(上記で設定した組合せ)
3. Windows Media Playerが終了する(閉じる)と、成功です!

もしも、終了しない場合は、キーの割り当て、組合せで誤りがないか再度確認してみましょう。

(3) USBフットスイッチに割り当てる。



キーボードでショートカットを入力しても良いのですが、いちいち手で操作するのは面倒ですね?
そこで足で操作できる「USBフットスイッチ」デバイスを利用してみます。

ルートアール メカニカル 高機能USBフットペダルスイッチ ゲームパッド・マルチメディア入力対応 RI-FP1DXG
RI-FP1DXG
ルートアール

¥ 2,680


(1) USBフットスイッチの設定ツール「FootSwitch」を起動します。
(2) 割り当てるデバイスで「キーボード」を選びます。(画面の右側上部の「キーボード」という項目を開きます。)
(3) 「Key1」という欄に、「close_wmplayer.vbs」を呼び出すキーボードショートカットの組合せを入力します。(Ctrl + Shit + F12 など)
(4) 設定したら「保存」ボタンをクリックします。

Windows Media Playerを閉じるVBSをUSBフットスイッチに設定

●動作確認
1. Windows Media Playerを開いて、音楽や動画などを再生してみます。
2. USBフットスイッチを押してみます。
3. Windows Media Playerが終了する(閉じる)と、成功です!

もしも、終了しない場合は、キーの割り当て、組合せで誤りがないか再度確認してみましょう。



これで、Windows10で、Windows Media PlayerをVBSで閉じることができるようになりました。

実際にやってみると、一つ問題点がありました。
それは、「閉じるまでの時間」です。

・VBSファイルをダブルクリックしたり、キーボードショートカットで呼び出す場合は、すぐにWindows Media Playerが閉じます。
・しかし、USBフットスイッチで閉じる場合は、3秒ほどの時間差で閉じます。

USBフットスイッチの反応が遅いのは、今のところ改善方法が分からないので仕方ないですが、ちょっと気になりました。
USBデバイスからCPUで処理されるまでの間に、何か遅延につながる要素があるのかもしれません。
関連記事

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURL:
http://gooddays1.blog37.fc2.com/tb.php/1388-d764832c