检测Windows进程和应用程序是否正在运行

时间:2012-11-30 15:36:35

标签: php windows process taskbar quickbooks

我正在研究是否有办法以编程方式检查某个进程是否作为一个进程运行(在运行exe的列表中) AND 作为一个打开的应用程序(即在任务栏上)并根据结果采取行动。

此外 - 有没有办法以编程方式杀死进程正在运行的应用程序?

我们正在这台服务器上运行一个WAMP应用程序,所以理想情况下我想要一种使用PHP来实现这一目的的方法,但我愿意接受最好的工作。

有什么建议吗?

1 个答案:

答案 0 :(得分:9)

  

检查某个进程是否作为进程运行

如果您有tasklist命令,请确保:

// show tasks, redirect errors to NUL (hide errors)
exec("tasklist 2>NUL", $task_list);

print_r($task_list);

然后你可以通过匹配/提取行中的任务名来杀死它。

exec("taskkill /F /IM killme.exe 2>NUL");

我在php-cli中使用了很多。例如:

// kill tasks matching
$kill_pattern = '~(helpctr|jqs|javaw?|iexplore|acrord32)\.exe~i';

// get tasklist
$task_list = array();

exec("tasklist 2>NUL", $task_list);

foreach ($task_list AS $task_line)
{
  if (preg_match($kill_pattern, $task_line, $out))
  {
    echo "=> Detected: ".$out[1]."\n   Sending term signal!\n";
    exec("taskkill /F /IM ".$out[1].".exe 2>NUL");
  }
}