Javascript来运行进程?

时间:2011-11-12 00:02:46

标签: javascript process

我想知道是否可以在网络浏览器(最有可能是IE)中使用Javascript来检索当前正在运行的进程列表?

我不会尝试启动任何进程或关闭它们或类似的东西。只是一个我可以查看的列表然后说例如,如果某个进程正在运行,则执行其他操作。

4 个答案:

答案 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启发

此代码已在以下浏览器中进行测试:

  • MSIE 8.0.6001.18702 / Windows XP Pro
  • MSIE 10.0.9200.16521 / Windows 7;标准文件模式
  • MSIE 11.0.9600.16428 / Windows 7; Edge(又名MSIE11)文档模式

如果您在创建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。