GetExitCodeProcess

 

Description

Syntax

BOOL GetExitCodeProcess( HANDLE hProcess, LPDWORD lpExitCode )

Parameters

hProcess
[input] A handle to the process.
lpExitCode
[output] A pointer to a variable to receive the process termination status. For more information, see Remarks.

Return

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Examples

EX1

void create_and_terminate_process()
{
    STARTUPINFO            sinfo;
    
    PROCESS_INFORMATION    pinfo;
    
    memset(&sinfo, 0, sizeof(STARTUPINFO));
    memset(&pinfo, 0, sizeof(PROCESS_INFORMATION));
    // test control wShowWindow
    sinfo.dwFlags = STARTF_USESHOWWINDOW;
    sinfo.wShowWindow = SW_SHOWMAXIMIZED;
    BOOL bSucess = CreateProcess("C:\\Windows\\notepad.exe", NULL, NULL, NULL, FALSE, CREATE_DEFAULT_ERROR_MODE, NULL, NULL, &sinfo, &pinfo);
        
    DWORD dwCode;
    
    if(GetExitCodeProcess(pinfo.hProcess, &dwCode))
    {
        if(dwCode == STATUS_PENDING)
            out_str("still alive");
        else
            printf("code = %X\n", dwCode);
    }
    else
        out_str("Failed to get exit code");

    //wait 1 sec
    LT_execute("sec -p 1");
    TerminateProcess(pinfo.hProcess, 2);
    if(GetExitCodeProcess(pinfo.hProcess, &dwCode))
        printf("After terminated, code = %X\n", dwCode);
    else
        out_str("Failed to get exit code");
        
}

Remark

Retrieves the termination status of the specified process.

This function returns immediately.

If the process has not terminated and the function succeeds, the status returned is STATUS_PENDING.

If the process has terminated and the function succeeds, the status returned is one of the following values:

  • The exit value specified in the ExitProcess or TerminateProcess function.
  • The return value from the main or WinMain function of the process.
  • The exception value for an unhandled exception that caused the process to terminate.

See Also

CreateProcess, TerminateProcess , ShellExecute, WinExec

header to Included

origin.h

Reference