我要根据一个进程的退出码或其他途径来确定这个进程(一个InstallShield的升级程序)是不是完整运行完毕了,以更新配置文件,但是如果这个进程运行中途被强行关闭,怎么区别和运行完毕的?请大家多多指教,谢谢

解决方案 »

  1.   

    UP.如果是第三方的程序运行产生的进程,你可以根运行程序的特性设置其标志。你可以参见CreateProcess有关文档,并通过GetExitCodeProcess获取退出码.一般下常退出为0,其他情况应视为出错.
      

  2.   

    use GetExitCodeProcess() function;
      

  3.   

    DWORD dwExitCode;
    BOOL success = GetExitCodeProcess(hProcess, &dwExitCode);
     if(success)
    {
        if(STILL_ACTIVE == dwExitCode)
        {
          //进程还在
       }
       else
       {
       //进程已死
       }
    }