2012-11-30 3 views
2

특정 프로세스가 프로세스 (실행중인 exe의 목록)에 이 열려있는 응용 프로그램으로 실행 중인지를 프로그램 방식으로 확인하는 방법이 있는지 조사하고 있습니다. 작업 표시 줄에서) 결과에 따라 조치를 취하십시오.Windows 프로세스 및 응용 프로그램이 실행 중인지 감지

또한 - 프로그래밍 방식으로 프로세스를 죽이는 방법이 있습니까 또는 실행중인 응용 프로그램?

우리는이 서버에서 WAMP 응용 프로그램을 실행하고 있으므로 이상적으로는 PHP를 사용하여이 작업을 수행하고 싶지만 무엇이 가장 잘 작동하는지 알고 싶습니다.

어떤 조언이 필요합니까?

+1

나는 사용자 유닛에서 현재 실행중인 애플리케이션에 액세스하거나 보거나 액세스 할 수있는 PHP 스크립트를 보거나 들었습니다. 실수하지 않으면 PHP는 웹 프로그래밍 언어입니다. PHP는 아마도 당신이하고자하는 작업의 선택 목록에서조차 최선의 선택이 아니거나 그렇지 않을 것입니다. – KyelJmD

+0

어쩌면, 그게 내가 확인하려고하는 것입니다 - 당신이 PHP에서 cmd 명령문을 실행할 수 있다는 것을 보았습니다 -하지만 내가 원하는 것을 할 수 있는지 여부는 또 다른 질문입니다. – drschultz

+0

태그가 붙어 있기 때문에 QuickBooks - 구체적으로 QuickBooks와 관련이 있습니까? 가능성은, 당신이하려고하는 것은 무엇이든 할 수있는 더 좋은 방법이 있습니다 ... –

답변

6

검사는 특정 프로세스는 프로세스로 실행중인 경우

당신은 확인 작업 목록 명령이있는 경우 :

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

Dunno, 어떤 식 으로든 구별 할 수 있다면, 작업 표시 줄에 - 어쩌면 일부 타사 도구가있을 수 있습니다. 그러나 작업 이름을 지정하고 활성 상태 인 경우 작업 목록에서 해당 작업을 정확히 일치시킬 수 있습니다 (작업 목록). – Cito

+0

좋은 답변입니다! 하나의 wamp가 실행되고있는 서버와 다른 서버에서이 검사를 할 수 있는지 궁금합니다. –

관련 문제