Retrieves the termination status of the specified process
#include <WinAPIProc.au3>
_WinAPI_GetExitCodeProcess ( $hProcess )
$hProcess | Handle to the process. |
Success: | The process termination status. If the process has not terminated and the function succeeds, the status returned is STILL_ACTIVE (259). |
Failure: | 0, call _WinAPI_GetLastError() to get extended error information. |
Search GetExitCodeProcess in MSDN Library.
#include <ProcessConstants.au3>
#include <WinAPIHObj.au3>
#include <WinAPIProc.au3>
#include <WinAPISys.au3>
; _WinAPI_CreateProcess() will be the best solution
Local $iPID = Run('cmd.exe /k')
If Not $iPID Then
Exit
EndIf
; Note, immediately open the process
Local $hProcess
If Number(_WinAPI_GetVersion()) >= 6.0 Then
$hProcess = _WinAPI_OpenProcess($PROCESS_QUERY_LIMITED_INFORMATION, 0, $iPID)
Else
$hProcess = _WinAPI_OpenProcess($PROCESS_QUERY_INFORMATION, 0, $iPID)
EndIf
If Not $hProcess Then
Exit
EndIf
; Wait until the process exists, try enter "exit 6"
While ProcessExists($iPID)
Sleep(100)
WEnd
ConsoleWrite('Exit code: ' & _WinAPI_GetExitCodeProcess($hProcess) & @CRLF)
_WinAPI_CloseHandle($hProcess)