javascript运行本地程序后,能监听此程序结束吗?
1个回答
展开全部
javascript运行本地程序后,不能像Masm, C++,VB 等语言那样调用系统的API,获取一个进程句柄,并对这个进程进行监听和操作这个进程的各种参数。
当然,世上无绝对的事情,或者你有能力可以用C++,VB 把操作进程的函数封装成一个 ActiveX控件供JavaScript调用。
当然,如果你只想监听这程序是否还存在,你可以定时枚举系统进程来判断,如果进程列表内有你要监听的进程名称(或者PID)那么就存在了。这些系统一般都有现成ActiveX控件提供给你,例如:
var Winmgmts=GetObject("Winmgmts:");
var IE=WSH.GetObject("","InternetExplorer.Application");
IE.Navigate("about:blank");
var Process=new Enumerator(Winmgmts.ExecQuery("select * from win32_process"));
var table=IE.document.createElement("table");
IE.document.title="进程列表";
table.cellPadding=3;
table.style.cssText="font:9pt 宋体;border-collapse:collapse";
table.border=1;
table.bgColor="#bfffcf";
table.borderColor="black";
IE.document.body.appendChild(table);
insertRow(["进程","文件名","执行位置和参数"]);
table.rows[0].bgColor="#bfcfff";
IE.Visible=1;
while(!Process.atEnd())
{
insertRow([
Process.item().ProcessId,
Process.item().Name,
Process.item().CommandLine
]);
Process.moveNext();
}
function insertRow(cellArr)
{
table.insertRow(table.rows.length);
for(C=0;C<cellArr.length;C++)
{
table.rows[table.rows.length-1].insertCell(C);
table.rows[table.rows.length-1].cells[C].innerText=cellArr[C];
}
}
JavaScript枚举系统进程,服务,还有硬件状态这些我都做过,例子都非常多。
当然,世上无绝对的事情,或者你有能力可以用C++,VB 把操作进程的函数封装成一个 ActiveX控件供JavaScript调用。
当然,如果你只想监听这程序是否还存在,你可以定时枚举系统进程来判断,如果进程列表内有你要监听的进程名称(或者PID)那么就存在了。这些系统一般都有现成ActiveX控件提供给你,例如:
var Winmgmts=GetObject("Winmgmts:");
var IE=WSH.GetObject("","InternetExplorer.Application");
IE.Navigate("about:blank");
var Process=new Enumerator(Winmgmts.ExecQuery("select * from win32_process"));
var table=IE.document.createElement("table");
IE.document.title="进程列表";
table.cellPadding=3;
table.style.cssText="font:9pt 宋体;border-collapse:collapse";
table.border=1;
table.bgColor="#bfffcf";
table.borderColor="black";
IE.document.body.appendChild(table);
insertRow(["进程","文件名","执行位置和参数"]);
table.rows[0].bgColor="#bfcfff";
IE.Visible=1;
while(!Process.atEnd())
{
insertRow([
Process.item().ProcessId,
Process.item().Name,
Process.item().CommandLine
]);
Process.moveNext();
}
function insertRow(cellArr)
{
table.insertRow(table.rows.length);
for(C=0;C<cellArr.length;C++)
{
table.rows[table.rows.length-1].insertCell(C);
table.rows[table.rows.length-1].cells[C].innerText=cellArr[C];
}
}
JavaScript枚举系统进程,服务,还有硬件状态这些我都做过,例子都非常多。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询