Javascript进程已经在运行,然后等待
我无法让函数工作。它应该检查Iexplore.exe是否正在运行,如果正在运行,请稍候。如果没有,则运行脚本 我不知道如何在中添加等待函数Javascript进程已经在运行,然后等待,javascript,process,Javascript,Process,我无法让函数工作。它应该检查Iexplore.exe是否正在运行,如果正在运行,请稍候。如果没有,则运行脚本 我不知道如何在中添加等待函数 function main() { var ieinfostate = false; var iewait = setInterval(function () { if (ProcessesRunning("iexplore.exe") != 1) { clearInterval(iewait); dosomethingelse(); } e
function main() {
var ieinfostate = false;
var iewait = setInterval(function () {
if (ProcessesRunning("iexplore.exe") != 1) {
clearInterval(iewait);
dosomethingelse();
} else if (ieinfostate == false) {
浏览器中的Javascript没有等待功能,也无法实现 在您的特定情况下,可以使用
setInterval()
调用每隔500毫秒左右定期检查一些状态,然后在找到所需状态时,停止间隔计时器并执行一些操作
var timer = setInterval(function() {
if (ProcessesRunning ("iexplore.exe") == 1) {
server.logMessage( "Please close Internet explore first" );
} else {
clearInterval(timer);
var shell = new ActiveXObject( "WScript.Shell" );
server.logMessage( "Unpacking file" );
// ...
}
}, 500);
因为您使用的是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</p>谢谢大家的帮助。请你再看一遍代码好吗?@user1823753:你在试什么?你刚才把我的一部分代码复制到了你的问题中。这就是js文件包含的全部代码吗?除非您向我们展示完整的代码,否则我们无法找出您的问题所在。