我想知道是否可以在网页浏览器(最可能是IE)中使用JavaScript来检索当前运行的进程列表?
我不打算启动或关闭任何进程之类的操作,只是需要一个列表,通过查看它然后判断某个特定的进程是否正在运行,如果是,则执行其他操作。
我想知道是否可以在网页浏览器(最可能是IE)中使用JavaScript来检索当前运行的进程列表?
我不打算启动或关闭任何进程之类的操作,只是需要一个列表,通过查看它然后判断某个特定的进程是否正在运行,如果是,则执行其他操作。
不,你不能从运行在普通权限下的基于浏览器的JavaScript中获取有关操作系统进程的任何信息。
出于隐私和安全原因,浏览器JavaScript环境受到非常仔细的保护和隔离。如果可以做到你刚才所要求的,那么互联网上的任何网页都可以看到你正在运行哪些程序,并将该信息发送回他们自己的服务器。
如果你愿意放松安全设置,某些版本的IE包含一些访问操作系统信息的能力(例如请参见此处),但你应该意识到,如果你放松安全设置,那么未知的网页也可能能够访问这些信息或在你的操作系统中执行操作。其他浏览器甚至不包含常规网页的此功能。由于只有一个浏览器支持此功能,而且只有在安全限制放宽时才支持,因此这绝不是一种通用的浏览器功能。
Here is JSP page-
<html>
<head>
<title>Find running processes</title>
<script type="text/jscript">
function getProcessList()
{
var procs = GetObject("WinMgmts:").InstancesOf("Win32_Process");
var mainRes = "";
procEnum = new Enumerator(procs);
for ( ; !procEnum.atEnd(); procEnum.moveNext())
{
var proc = procEnum.item();
mainRes += proc.Name + ": " + proc.ProcessID + "\n";
}
return mainRes;
}
function getSysRunningApps()
{
var oOutput = document.getElementById("processDisplay");
oOutput.value = "";
oOutput.value = getProcessList();
}
</script>
</head>
<body bgcolor="#FFFFFF">
<input type="button" value="Show Processes" onclick="getSysRunningApps();"><br>
<p id="processDisplay" cols="30" rows="40"></p>
</body>
</html>
GetObject
VB函数(http://msdn.microsoft.com/en-us/library/ie/7tf9xwsc%28v=vs.94%29.aspx)。您需要使用Quirks模式... - Julien Kronegg是的,你可以!下面的方法只针对MSIE浏览器,并且可能会引发安全警告。
在MSIE浏览器中执行以下代码,可以在浏览器窗口中列出所有Windows进程,并在McAfee运行时显示javascript警报:
<html>
<body>
<div id="list"></div>
</body>
<script>
// create a shell object and exec handle
var shell = new ActiveXObject('WScript.Shell');
var handle = shell.Exec("tasklist.exe");
// loop through the output of tasklist.exe
while (!handle.StdOut.AtEndOfStream) {
// grab a line of text
var p = handle.StdOut.ReadLine();
document.getElementById("list").innerHTML+=p+"<br>"; // for debugging
// split on space
p = p.split(' ');
if (p[0]=='mcshield.exe') {
alert("McAfee detected");
}
} // end :: while
// clean up
handle = null;
shell=null;
</script>
</html>
来源:灵感来自https://dev59.com/UVnUa4cB1Zd3GeqPcKCQ#6834585
此代码已在以下浏览器中测试通过:
如果在创建 ActiveXObject
时出现 JavaScript 错误 Automation server can't create object
,则可能需要将 MSIE 的安全选项 Initialize and script ActiveX controls not marked as safe for scripting
设置为 Prompt
或 Enable
。
在 Firefox 下,您应该使用基于XPCOM 的 nsIProcess的东西。
请注意,tasklist.exe
在所有 Windows 版本下都不可用:据我所知,它从 Windows XP Pro 开始提供。
tasklist.exe
?(通常情况下,它在 %windir%\system32\tasklist.exe
下面) - Julien Kronegg