ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

フリーソフトとスクリプトを組み合わせてアプリケーションを再起動

展示会用のパソコンで、ブラウザを強制終了して再起動させる動作を、手早く行いたいという要望がありました。
特定のキーの同時押しで動作して欲しいというので、ホットキーを用意することにしました。

ホットキーはフリーソフトで用意

最初は再起動のバッチファイルにショートカットキーを設定すればいいかと思っていましたが、プロパティを開いてショートカットキーを設定しようとしてもできません。
諦めてフリーソフトを探していると、普段使っているCLaunchというフリーソフトにホットキーの設定機能があることに気がつきました。

Tera Termの例ですが、AltキーとSpaceキーを同時に押すと、Tera Termが起動します。
f:id:AJYA:20160301055945p:plain
これでホットキーの設定はできるようになりました。

vbスクリプトでバッチファイルを呼び出して、コマンドプロンプト表示を回避

強制終了と再起動は、バッチファイルに

taskkill /IM iexplorer.exe /F
iexplorer.exe

と記述して実行すると、ブラウザを強制終了して再起動はできますが、コマンドプロンプトが開きっぱなしになります。

それならばと

start /B taskkill /IM iexplorer.exe /F
start /B iexplorer.exe

と記述して実行すると、コマンドプロンプトが一瞬表示されますが、コマンドプロンプトが開きっぱなしということは回避できました。

一瞬表示される現象の回避は無理かと検索すると、以下の記事に方法が書かれていました。
バッチファイルを実行する時に黒いコマンドプロンプト画面を表示しない方法 | パソコンが便利で楽になるものを紹介しています [あまおとろぐ]

Windows8のタスクスケジューラ - マイクロソフト コミュニティ

これらの記事を参考に、以下のファイルを用意しました。

restart.bat

taskkill /IM iexplorer.exe /F
iexplorer.exe

restart.vbs

Set ws = CreateObject("Wscript.Shell") 
ws.run "cmd /c restart.bat", vbhide 

CLaunchのファイル名に「C:\Windows\System32\wscript.exe」、パラメータに「"C:\restart\restart.vbs"」を設定しました。

上記の設定で、コマンドプロンプトが表示されることなく、ブラウザを再起動できるようになりました。