_UserProcessExists: Läuft ein Prozess unter einem bestimmten Benutzer

Antworten
localhorst
Beiträge: 571
Registriert: 17.12.2012, 20:19

_UserProcessExists: Läuft ein Prozess unter einem bestimmten Benutzer

Beitrag von localhorst »

Parameter:
$sProcessName = Name des Prozesses, der überwacht werden soll.
$sProcessUser = Nutzer, der auf Ausführung des o.g. Prozesses geprüft werden soll.

Return:
Prozess-ID des gefundenen Prozesses.
0, wenn der angegebene Prozess nicht unter dem angegebenen Benutzer läuft.

Code: Alles auswählen

Func _UserProcessExists($sProcessName, $sProcessUser)
	Local $sUserName
	Local $objWMI = ObjGet("winmgmts:\\" & @ComputerName & "\root\cimv2")
	If IsObj($objWMI) Then
		Local $colResults = $objWMI.ExecQuery('SELECT * FROM Win32_Process WHERE Name = "' & $sProcessName & '"')
		For $objItem in $colResults
			$objItem.GetOwner($sUserName, @LogonDomain)
			If $sUserName = $sProcessUser Then Return $objItem.Handle
		Next
	EndIf
	Return 0
EndFunc
Antworten