起動に(ウインドウが現れるのに)時間がかかるアプリは
そのままだと*focusが対象を見つけられない。
その対応。
簡易的には*wait入れてタイミングを見計らうと言う手もあるが、
HDDやCPUが高負荷時にはなかなか難しいだろうと
Message Moduleを使用したスクリプトで対応。
//!*script // EAC遅延起動対応スクリプト Ver1.0 // 使用エイリアス EAC // ============================================================ //^変数宣言 var i = 0; // ループカウンタ var command = ''; // PPxコマンドワーク var ClassNo = ''; // 指定ウインドウクラスNo // 指定ウインドウクラスNo取得 command = '%*findwindowclass("erstes")'; ClassNo = PPx.Extract(command); // 指定ウインドウチェックループ if (ClassNo == 0) // 指定ウィンドウなし PPx.Execute('EAC'); // EAC起動 while (ClassNo == 0) { PPx.Execute('*wait 100');// 遅延ウェイト 0.1秒 ClassNo = PPx.Extract(command); i++; if (i > 100) { // 暴走チェック 0.1秒*100経過で中断問い合わせ command = '%"' + (PPx.ScriptName).replace(/^.+\\(.+$)/,'$1') + '"' + '%:%QN"EAC起動チェックできません。続行しますか?"' if (PPx.Execute(command) != 0) { PPx.Quit(-1); } else { i = 0; } } } } // フォーカスセットして終了 PPx.Execute('*focus #' + ClassNo); PPx.Quit();