2012-07-05 51 views
0

我有一個(樣品)的PHP代碼如下:PHP獲取進程創建時間?

$name_Proc = "chrome.exe"; 
$wmi = new COM('winmgmts://'); 
$processes = $wmi->ExecQuery("SELECT * FROM Win32_Process WHERE Name ='".$name_Proc."'"); 

我用它來計算與下面的代碼的過程中,

$array = array(); 
foreach($processes as $process){ 
     array_push($array,$process->ProcessId); 
} 
$count_Process = count($array); 
return $count_Process; 

現在,真實的東西,我現在需要的進程創建時間,這是可能使用VBScript與以下代碼:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 

Set colProcessList = objWMIService.ExecQuery _ 
    ("Select * from Win32_Process Where Name = 'notepad.exe'") 

For Each objProcess in colProcessList 
    Wscript.Echo objProcess.CreationDate 
Next 

現在,如果我想知道如何將我的PHP腳本實現這個!

任何線索?

+2

每次有人使用PHP的COM時,他們都應該被迫在他們的眼睛上粘上熱叉。 – Leigh 2012-07-05 15:46:10

+0

感謝您的評論,如果你告訴我它的替代方案,這將是非常好的嗎?你做?哦,你可以評論我認爲..! – Ahsan 2012-07-05 15:51:57

回答

0

好吧,抱歉,大家,現在看它現在了!我想到了。下面的代碼,希望它可以幫助別人在未來:)

foreach ($processes as $process) { 
print $process->CreationDate; 
} 

使用這段代碼,完整的代碼如下:

function processMade($pid) { 
$name_Proc = "9052"; 
$wmi = new COM('winmgmts://'); 
$processes = $wmi->ExecQuery("SELECT * FROM Win32_Process WHERE ProcessId ='".$name_Proc."'"); 
$array = array(); 
foreach ($processes as $process) { 
array_push($array,print $process->CreationDate); 
} 
return $array; 
} 

或者乾脆使用:

$name_Proc = "9052"; //this is the PID, if you want it by name than change the ProcessId = '".$name_Proc."'" in the 4th line. 
    $wmi = new COM('winmgmts://'); 
    $processes = $wmi->ExecQuery("SELECT * FROM Win32_Process WHERE ProcessId ='".$name_Proc."'"); 
    $array = array(); 
    foreach ($processes as $process) { 
    array_push($array,print $process->CreationDate); 
    } 

最佳,

阿赫桑

+0

所以在4分鐘內你很*突然想出瞭解決方案,併發布了答案?有趣... – 2012-07-05 15:08:06

+0

想法沒有時間告訴! – Ahsan 2012-07-05 15:49:05