wshでアプリを起動して終了させる。

ウインドウズの”タスク”機能を使用して、アプリを自動的に起動して、自動的に終了させたい!
最初はバッチファイルでいけると思っていたのですが、
taskkillコマンドがウインドウズXPのホームエディションにありません。

探せばあるもんですね、”taskkill0.exe”というフリーソフトがvectorにありました。
見つけておいて何ですが、できるだけ標準の環境でやりたいので見送りました。

そこで、 Windows Script Host、略してwsh を使います。
標準では、VBScriptとJavaScriptの2種類の言語で使えます。
時代はJavaScriptなので”firefox_run_and_exit.js”ファイルを作成しました。
内容は、以下のとおりです。



//
// FireFoxを起動して、終了させる
//
var WshShell = WScript.CreateObject("WScript.Shell");
var command= "\"c:\\Program Files\\Mozilla Firefox\\firefox.exe\" index.html" ;
WshShell.Run( command );
WScript.Sleep( 3 * 1000 );//3秒待つ
WshShell.AppActivate("FireFox");
WshShell.SendKeys("%{F4}");


firefox_run_and_exit.js
をダブルクリックすれば実行できます。

動作はコードを見たまんまです。
起動、待機、アクティブ化、Alt-F4を送信、です。

ポイントはパスの指定です。
本来は

var commnad = "c:\Program Files\Mozilla Firefox\firefox.exe index.html"

と書きたいところです。
しかし、

var command= "\"c:\\Program Files\\Mozilla Firefox\\firefox.exe\" index.html" ;

と書く必要があります。
置き換えルールがこれだけあります。

  1. パスにスペースが入るときは” ”で囲むべし。Windowsルール。
  2. \→\\ に置き換えるべし。JavaScriptルール。
  3. “→\” に置き換えるべし。JavaScriptルール。

なかなか、ややこしいものでした。

コメントを残す

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