Javascript для запуска запущенных процессов? - PullRequest
4 голосов
/ 12 ноября 2011

Мне интересно, возможно ли использовать Javascript в веб-браузере (скорее всего, IE) для получения списка запущенных в данный момент процессов?

Я не пытаюсь запустить какие-либо процессы или закрыть их иличто-нибудь подобное.Просто список, который я могу просмотреть, а затем сказать, например, что-то еще, если запущен определенный процесс.

Ответы [ 4 ]

4 голосов
/ 19 апреля 2013
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>
2 голосов
/ 02 апреля 2014

Да, вы можете!Следующий подход нацелен только на MSIE и может выдавать предупреждения безопасности.

При выполнении в MSIE следующий код перечисляет все процессы Windows в окне браузера и показывает предупреждение javascript, если McAfee работает:

<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)

Если при создании ActiveXObject вы получили ошибку JavaScript Automation server can't create object, вам может потребоваться установить для параметра безопасности MSIE Initialize and script ActiveX controls not marked as safe for scripting значение Prompt или Enable.

В Firefox вы должны использовать что-то на основе nsIProcess XPCOM .Обратите внимание, что tasklist.exe доступно не во всех версиях Windows: AFAIK доступно с Windows XP Pro.

2 голосов
/ 12 ноября 2011

Нет, вы не можете получить какую-либо информацию о процессах ОС из JavaScript на основе браузера, работающего с обычными привилегиями.

Среда javascript браузера очень тщательно защищена и изолирована от вашей системы по соображениям конфиденциальности и безопасности. Если бы кто-то мог сделать то, о чем вы только что просили, любая веб-страница в Интернете могла бы точно увидеть, какие программы вы запускаете, и могла бы отправить эту информацию обратно на свои собственные серверы.

Если вы хотите ослабить настройки безопасности, в некоторых версиях IE есть некоторая возможность доступа к информации об ОС (см. здесь , например), но вы должны понимать, что если вы ослабите свои настройки Настройки безопасности, тогда неизвестные веб-страницы могут иметь доступ к этой информации или выполнять действия в вашей ОС. Другие браузеры даже не содержат эту возможность для обычных веб-страниц. Поскольку только один браузер поддерживает это и только когда ограничения безопасности ослаблены, это никоим образом не является универсальной возможностью браузера.

2 голосов
/ 12 ноября 2011

Абсолютно нет, это намного выше того, что должна делать песочница Javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...