- Offizieller Beitrag
Hi,
hier mal ein Entwurf um die Dauer in Sekunden zu bekommen, die ein Prozess läuft.
Spoiler anzeigen
#include <Date.au3>
#include <Array.au3>
$re = _processUpTime("firef4ox.exe")
If IsArray($re) Then
_ArrayDisplay($re)
Else
MsgBox(64, "info", $re)
EndIf
#cs
Return Code
0 = No Process found
-1 = Error - no object
Array with [time in seconds][processID]
#ce
Func _processUpTime($exe)
If not ProcessExists($exe) Then Return 0
Local $process = '"' & $exe & '"'
Local $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
Local $colItems = $objWMIService.ExecQuery ("SELECT * FROM Win32_Process Where NAME = " & $process & "", "WQL", 0x10 + 0x20)
If Not IsObj($colItems) Then Return -1
[/autoit] [autoit][/autoit] [autoit]Local $return[1][2], $counter = 0
For $objItem In $colItems
If $counter > 0 Then ReDim $return[$counter + 1][2]
$iDateCalc = _DateDiff('s', StringLeft($objItem.CreationDate, 4) & "/" & StringMid($objItem.CreationDate, 5, 2) & "/" & StringMid($objItem.CreationDate, 7, 2) _
& " " & StringMid($objItem.CreationDate, 9, 2) & ":" & StringMid($objItem.CreationDate, 11, 2) & ":" & StringMid($objItem.CreationDate, 13, 2), _
@YEAR & '/' & @MON & '/' & @MDAY & ' ' & @HOUR & ':' & @MIN & ':' & @SEC)
$return[$counter][0] = $iDateCalc
$return[$counter][1] = $objItem.ProcessId
$counter += 1
Next
Return $return
EndFunc ;==>_processUpTime
So long,
Mega