关于与进程的急手问题,帮帮忙!!! 小弟在自己的程序中CreateProcess了一个进程,若是这个子进程Crash了我的进程如何得知?谢谢指点了!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用WaitForSingleObject进行跟踪判断 启动子进程的时候获得子进程的handle,然后用WaitForSingleObject等待子进程退出时handle的返回,就可以判断子进程退出了 是那个Create的进程崩掉了(不是退出)我的程序怎么得知?需不需要截获什么消息啊? 这样好了,在主进程里面定时检查,如果发现子进程没了,而且又没有收到子进程正常退出的通知,那就是说明子进程crash了 我刚刚做了一个小测试了一下,可以运行,现在贴出来给,大家指导了,PROCESS_INFORMATION information; STARTUPINFO info; ZeroMemory(&info, sizeof(STARTUPINFO)); info.cb = sizeof(STARTUPINFO); info.dwFlags = STARTF_USESHOWWINDOW; info.cbReserved2 = NULL; info.lpReserved = NULL; info.lpReserved2 = NULL; BOOL vb = CreateProcess(NULL, "test.exe", NULL, //这里的test.exe你随便找个就可以了 NULL, true, 0, NULL, NULL, &info, &information); if(!vb) { cout<<"failed to create!"<<endl; return 0; } while(1) { HANDLE hand = OpenProcess(PROCESS_ALL_ACCESS, NULL, information.dwProcessId); if(!hand) { cout<<"child thread is dead"<<endl; return 0; } Sleep(1000); } 用oyljerry(☆勇敢的心☆-要开始写论文了) ( ) 的方法应该是可行的 To:linxy2002(阿郎)你的方法我试过了,还是不行啊~~~!当子进程崩调时系统会弹出一个发送错误信息的对话框,在此时及之后OpenProcess函数都可以返回句柄,而且每次都不一样。我是想怎么样才能使我的程序得知子进程Crash了?如果能不让系统弹出那个框我自己做处理更好!Anyway,thank you!大家继续讨论啊~~!!小弟先谢过了~~~ 与文档无关的视图类如何获取文档指针 怎么知道一个系统是用DELPHI开发的还是用VC开发的?里面有一些EXE文件、DLL文件之类的。 求助:关于文件的读写。 大家看看这段代码内存使用上有什么问题 VC 调用InternetOpenUrl函数问题 52001314(老大,分根棒棒糖给我吧:)) 兄,来接分吧 做过图象识别的大侠请进 ODBC的问题,帮帮我 怎么判断屏幕是否有动作 位图的长,宽等信息怎么获取? TCP客户端不能close(socket) 请阐述一下引用、句柄、指针 的异同以及对于资源的引用上的转换。
然后用WaitForSingleObject等待子进程退出时handle的返回,就可以判断子进程退出了
PROCESS_INFORMATION information;
STARTUPINFO info;
ZeroMemory(&info, sizeof(STARTUPINFO)); info.cb = sizeof(STARTUPINFO);
info.dwFlags = STARTF_USESHOWWINDOW;
info.cbReserved2 = NULL;
info.lpReserved = NULL;
info.lpReserved2 = NULL; BOOL vb = CreateProcess(NULL, "test.exe", NULL, //这里的test.exe你随便找个就可以了
NULL, true, 0, NULL, NULL, &info, &information); if(!vb)
{
cout<<"failed to create!"<<endl;
return 0;
}
while(1)
{
HANDLE hand = OpenProcess(PROCESS_ALL_ACCESS, NULL, information.dwProcessId);
if(!hand)
{
cout<<"child thread is dead"<<endl;
return 0;
}
Sleep(1000);
}
小弟先谢过了~~~