3

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

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

我们正在这台服务器上运行一个 WAMP 应用程序,所以理想情况下我想要一种使用 PHP 的方法,但我愿意接受任何最有效的方法。

有什么建议吗?

4

1 回答 1

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");
  }
}
于 2012-11-30T16:15:47.310 回答