Hi @ll
Möchte von mehreren Servicen den Status abfragen und als ein Ergebnis zurückbekommen, sprich wenn alle (in dem Fall) 3 laufen ist es TRUE, wenn einer nicht läuft ERROR und wenn die Services nicht installiert sind ist es NULL. Habe es mit StdoutRead probiert, komme aber nur bis zur Auflistung des jeweiligen Status. Wer kann mir da evtl. weiterhelfen?
AutoIt
#include <AutoItConstants.au3>
Global $service[3]
$service[0] = 'Service1'
$service[1] = 'Service2'
$service[2] = 'Service3'
MsgBox(0, "", _check())
Func _check()
Local $aService
For $i = 0 To UBound($service) - 1
$match = cmdread('sc.exe query ', $service[$i], ' | findstr /R /I /C:"\<state"')
$aService &= $match ;& @CRLF
Next
Return $aService
EndFunc
Func cmdread($cmd1, $cmd2, $cmd3)
Global $sOutput = ""
Local $iPID = Run(@ComSpec & ' /c ' & $cmd1 & $cmd2 & $cmd3, @SystemDir, @SW_HIDE, $STDERR_MERGED)
While 1
$sOutput &= StdoutRead($iPID)
If @error Then ExitLoop
WEnd
Return $sOutput
EndFunc
Alles anzeigen