由于您使用的是 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 中进程关闭的唯一方法。
微软在 jscript 中难以实现有用的 api,如进程状态更改事件等。
如果你想让它干净,你应该考虑使用 c、c++ 或 c#