我在當前登錄的用戶會話中使用API函數GetExitCodeProcess來監視進程的退出代碼。此過程在另一個會話(SYSTEM)中運行。 函數立即返回,退出代碼爲0. 我不認爲這是正確的。GetExitCodeProcess無法在另一個會話中運行進程?
任何人都可以告訴如果這個函數總是會失敗/如果進程已經在不同的會話中啓動,會給出錯誤的結果嗎?
我的VB6的代碼是這樣的,如果有人有興趣:
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
謝謝。
您可能沒有必要的權限來打開該過程。 –