怎么判断一个进程是否是错误退出
1个回答
展开全部
可以通过进程退出码判断
DWORD dwRet = WaitForSingleObject(hHandle,INFINITE);//hHandle为进程句柄HANDLE
if (WAIT_OBJECT_0 == dwRet){DWORD dwExitCode = 1;
if (GetExitCodeProcess(hHandle, &dwExitCode)){通过进程退出的返回码dwExitCode判断进程是否异常中止。}}
------解决方案--------------------------------------------------------
用调试模式启动那个进程就可以知道了。一个简单的判断方法,如果收到EXCEPTION_DEBUG_EVENT, ContinueDebugEvent后很短时间内就收到EXIT_PROCESS_DEBUG_EVENT那就可以认为程序异常退出了。
------解决方案--------------------------------------------------------
用GetExitCodeProcess捕获它的返回码一定能捕获到的,无论是正常退出还是异常退出。
一般情况下正常退出时ExitCode是0,异常退出ExitCode的值会有多种情况。
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------g调试程序的流程如上!
当关闭我编译的程序A,被调试的程序B,也将一同关闭!
------解决方案--------------------------------------------------------
你先调用createprocess启动要调用的程序,然后调用CloseHandle关闭返回的句柄.再DWORD dwRet = WaitForSingleObject(hHandle,INFINITE);//hHandle为进程句柄HANDLE返回了就说明进程结束了.
DWORD dwRet = WaitForSingleObject(hHandle,INFINITE);//hHandle为进程句柄HANDLE
if (WAIT_OBJECT_0 == dwRet){DWORD dwExitCode = 1;
if (GetExitCodeProcess(hHandle, &dwExitCode)){通过进程退出的返回码dwExitCode判断进程是否异常中止。}}
------解决方案--------------------------------------------------------
用调试模式启动那个进程就可以知道了。一个简单的判断方法,如果收到EXCEPTION_DEBUG_EVENT, ContinueDebugEvent后很短时间内就收到EXIT_PROCESS_DEBUG_EVENT那就可以认为程序异常退出了。
------解决方案--------------------------------------------------------
用GetExitCodeProcess捕获它的返回码一定能捕获到的,无论是正常退出还是异常退出。
一般情况下正常退出时ExitCode是0,异常退出ExitCode的值会有多种情况。
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------g调试程序的流程如上!
当关闭我编译的程序A,被调试的程序B,也将一同关闭!
------解决方案--------------------------------------------------------
你先调用createprocess启动要调用的程序,然后调用CloseHandle关闭返回的句柄.再DWORD dwRet = WaitForSingleObject(hHandle,INFINITE);//hHandle为进程句柄HANDLE返回了就说明进程结束了.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询