「AutoHotkey」というツールを使ってキーボードのカスタマイズをしている、と以前のブログに書いた。
(*1) ブログ「キーボード:日本語モードでも[,][:][=]を半角で入力したい!」
ところがこのAutoHotkey、、パソコンを使っているうちにいつの間にかプロセスが終了してしまっていることが稀に起こる。。(1日に1~2回くらい。。)
プロセスが消える理由もタイミングも見当がつかず、モヤモヤしてたので、定期的にプロセスが起動しているかどうか監視するバッチを作ってみた。
※現段階では、監視バッチを定期的(5分間隔)に起動する仕組みを作っただけで、まだ消える原因は特定できていない。。(これから このバッチで特定できることを期待!)
→ 2016.01.22追記:やっと原因判明! 詳しくはこちら > Autohotkeyのプロセスが突然終了する!件の対処
2つのツールを組み合わせて実現
本機能を実現するにあたり、「プロセスを監視するバッチ」と、そのバッチを「定期的に起動する」ツールの2つを組み合わせた。
プロセスを監視するバッチ
まずは「プロセスを監視するバッチ」について。
@ECHO OFF
CD C:\tmp\
TASKLIST | FIND "AutoHotkey.exe" > NUL
IF NOT ERRORLEVEL 1 (
GOTO PGOK
) ELSE (
ECHO 「AutoHotkey」が起動していません。
GOTO PGNG
):PGOK
ECHO AutoHotkey:起動OK %DATE% %TIME% >> AutoHotkey_chk.txt
GOTO END
:PGNG
ECHO AutoHotkey:起動NG!!!! %DATE% %TIME% >> AutoHotkey_chk.txt
START %SystemRoot%\system32\notepad.exe
GOTO END
:END
ECHO 終了処理
EXIT
※NGの場合にノートパッドを起動する(Notepadのウィンドを開く)ことで知らせる。
バッチの定期起動
VBSによりコマンドウィンドが開かないようにする
上記バッチファイルを起動すると、都度コマンドの黒いウィンドが一瞬開く。
PCで作業しているときに邪魔になるので、VBSを使うことでコマンドウインドゥが開かないようにする。
Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "C:\xxxxx\AutoHotkey_chk.bat",0
Set oShell = Nothing
Windowsのタスクスケジューラに登録
参考: http://www.atmarkit.co.jp/ait/articles/1305/31/news049.html
●タスクスケジューラの設定画面を開く
・コントロールパネルから[システムとセキュリティ]-[管理ツール]をクリックし、
[タスク スケジューラ]をダブルクリック
●新たにタスクを作成する
・タスクスケジューラの左ペインのツリーで[タスク スケジューラ (ローカル)]フォルダ
ーを選択してから、右側の操作ペインで[タスクの作成]をクリック。
・「操作」タブで、上記VBSファイル(C:\xxxxx\AutoHotkey_chk.vbs)を設定
今回は、ログイン時に開始し、5分間隔で監視するように設定。
ホームページ制作のこと、ホームページの運営でわからないことや困っていることがありましたら、「株式会社アットライズ」までお気軽にご相談ください。
株式会社アットライズのホームページはこちら