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

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

另外 – 是否有一种方法编程地杀死进程正在运行的应用程序?

我们正在这个服务器上运行一个WAMP应用程序,所以理想情况下我想用一种方式来使用PHP来做到这一点。

有什么build议?

检查某个进程是否正在运行

如果您有任务列表命令,当然:

// 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"); } }