Ich verwende die API-Funktion GetExitCodeProcess in der aktuell angemeldeten Benutzersitzung, um den Beendigungscode eines Prozesses zu überwachen. Dieser Prozess wird in einer anderen Sitzung (SYSTEM) ausgeführt. Die Funktion kehrt sofort mit einem Exit-Code von 0 zurück. Ich glaube nicht, dass das korrekt ist.GetExitCodeProcess fehlgeschlagen für Prozess in einer anderen Sitzung ausgeführt?
Kann jemand sagen, ob diese Funktion immer fehlschlägt/falsche Ergebnisse gibt, wenn der Prozess in einer anderen Sitzung gestartet wurde?
Mein VB6-Code ist dies, wenn jemand interessiert ist:
Public Function GetProcExitCode(ByVal uProcID As Long) As Long
Const STILL_ACTIVE = &H103&
Const PROCESS_QUERY_INFORMATION = &H400&
Dim lProcHnd As Long
lProcHnd = OpenProcess(PROCESS_QUERY_INFORMATION, True, uProcID)
Dim lTick As Long
lTick = GetTickCount
Dim lRet&
lRet = 0
'Wait for process end
Do
GetExitCodeProcess lProcHnd, lRet
Loop While lRet = STILL_ACTIVE
CloseHandle lProcHnd
GetProcExitCode = lRet
Dim lTicks&
lTicks = GetTickCount() - lTick
WriteLog "!!! GetExitCodeProcess needed " & lTicks & " ms."
End Function
Danke.
Sie verfügen wahrscheinlich nicht über die erforderlichen Berechtigungen zum Öffnen des Prozesses. –