PHP获取进程创建时间?

时间:2012-07-05 14:57:59

标签: php process count win32com

我有一个(示例)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脚本中实现它!

任何线索?

1 个答案:

答案 0 :(得分: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);
    }

最佳,

阿赫桑