你需要知道这个程序(process)的Handle,然后
GetExitCodeProcess

解决方案 »

  1.   

    可以访问ERROR_LEVEL值,早期很多.bat文件都是这样做的。
      

  2.   

    PROCESS_INFORMATION pi;
        STARTUPINFO si;
        si.cb = sizeof(STARTUPINFO);
        si.lpReserved = NULL;
        si.lpDesktop = NULL;
        si.lpTitle = NULL;
        si.dwFlags = 0;
        si.cbReserved2 = 0;
        si.lpReserved2 = NULL;
        BOOL bres = CreateProcess(NULL,"test a.txt b.txt",NULL,NULL,false,
                            NORMAL_PRIORITY_CLASS,
                            NULL,NULL,&si,&pi);
    if(bres==false)
    {
    AfxMessageBox("CreateProcess failed");
    }
    else
    {
    CloseHandle(pi.hThread);
    DWORD dwret=WaitForSingleObject(pi.hProcess, 1000*30);
    switch(dwret)
    {
    case WAIT_OBJECT_0:
    DWORD dwexitcode;
    bres = GetExitCodeProcess(pi.hProcess,&dwexitcode);/////Get exit code
    TCHAR exitmsgbuf[1024];
    if(bres)
    {
    wsprintf(exitmsgbuf,"exit code:%d",dwexitcode);
    }
    else
    wsprintf(exitmsgbuf,"exit code failed to return");AfxMessageBox(exitmsgbuf);
    break;
    default:
    AfxMessageBox("exit for other reason");
    }
    CloseHandle(pi.hProcess);
    }