*[PPx]スクリプトメモ EAC起動&フォーカス移動(遅延起動アプリ対応)

起動に(ウインドウが現れるのに)時間がかかるアプリは
そのままだと*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();