jscriptを使用しているので、sleep()メソッドがあります。javascriptは非同期になるように設計されているので、これは使用できる最悪の事態だと思いました。
あなたはこのようにそれを行うことができます:
var ieinfostate = false;
var iewait = setInterval(function () {
if (ProcessesRunning("iexplore.exe") != 1) {
clearInterval(iewait);
dosomethingelse();
} else if (ieinfostate == false) {
ieinfostate = true;
server.logMessage("Please close Internet Explorer first. This installer will wait till its closed.");
}
}, 500);
var dosomethingelse = function () {
var shell = new ActiveXObject("WScript.Shell");
server.logMessage("Unpacking file");
/* your unpack stuff here */
};
悲しいことに、タイマーはWindowsでプロセスの終了を待つ唯一の方法です。
マイクロソフトは、プロセス状態変更イベントなどの有用なAPIをjscriptに実装することに失敗しました。
クリーンにしたい場合は、c、c ++、またはc#の使用を検討する必要があります