怎么判断一个进程是否是错误退出

 我来答
镜音双子696612
推荐于2017-12-16 · 超过62用户采纳过TA的回答
知道答主
回答量:113
采纳率:100%
帮助的人:52.2万
展开全部
可以通过进程退出码判断
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返回了就说明进程结束了.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式