我想知道是否可以在网络浏览器(最有可能是IE)中使用Javascript来检索当前正在运行的进程列表?
我不会尝试启动任何进程或关闭它们或类似的东西。只是一个我可以查看的列表然后说例如,如果某个进程正在运行,则执行其他操作。
答案 0 :(得分:4)
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>
答案 1 :(得分:2)
绝对不是,这远远超出了Javascript沙箱应该能够做到的。
答案 2 :(得分:2)
不,您无法从以正常权限运行的基于浏览器的JavaScript获取有关操作系统进程的任何信息。
出于隐私和安全原因,浏览器javascript环境受到非常谨慎的保护并与您的系统隔离。如果一个人可以做你刚才要求的,那么互联网上的任何网页都可以确切地看到你正在运行的程序,并可以将这些信息发送回自己的服务器。
如果您愿意放松安全设置,某些版本的IE包含一些访问操作系统信息的功能(请参阅here获取示例),但您应该意识到如果放松安全设置,然后未知的网页可能能够访问此信息或在您的操作系统中采取行动。其他浏览器甚至不包含常规网页的此功能。只有一个浏览器支持此功能,并且仅在放宽安全限制时,这不是任何方式的通用浏览器功能。
答案 3 :(得分:2)
是的,你可以!以下方法仅针对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://stackoverflow.com/a/6834585/698168启发
此代码已在以下浏览器中进行测试:
如果您在创建Automation server can't create object
时遇到JavaScript错误ActiveXObject
,则可能需要将MSIE的安全选项Initialize and script ActiveX controls not marked as safe for scripting
设置为Prompt
或{{ 1}}。
在Firefox下,您应该使用基于XPCOM's nsIProcess的内容。
请注意,Enable
并非在所有Windows版本下都可用:自Windows XP专业版以来可用的AFAIK。