我的程序启动一个进程,如何确定它以及它的自进程全部退出?(
解决方案 »
- OPENGL的图形旋转问题,求高手帮助
- 请帮忙看看,网络通信小程序的一个小错误,帮忙改正,指教谢谢!
- 用CDC在static里画的东西用什么方法把它清除掉?(有急用)
- 求教IHTMLDocument2::elementFromPoint的问题(50分)
- 请问谁能提供快速比较位图的代码
- 初级问题。
- 关于在dll中限制post数据次数的问题?
- 关于ocx控件制作问题,送高分求救!!!!
- vc中win32 console applicaion 和 win32 application 有什么区别?
- 如何获取系统有多少字体???
- 高分求助!想用一静态数据成员记录类C的对象个数。那怎么在类C里记录类C某对象的副本的个数?如下:
- 新手请教几个小问题
然后使用WaitForSingleObject()等待这个handle
这个被启动的进程不是我写的,而这个被启动的进程可能启动另外一个进程,以此类推
我希望确定这个进程和他所有的子进程、孙子进程等都已经退出
老大们摆脱好好看看问题吧,如果我的子进程建立了他的子进程, WaitForSingleObject 怎么能知道他的子进程是否退出那??
晕啊,老大我保证不是什么非法的勾当
我是想让用户用我的程序启动某个程序,然后挂起我的程序,直到某个程序完成它的操作,
本来我是用WaitForSingleObject,不过发现某些程序会启动一个进程后自己就退出了,所以才有这个要求很急
谢谢
我已经做过一个类似的东西
我轮询获得所有的进程句柄,然后根据这些进程的父进程句柄递归查找子进程, 但这种方法效率很低,而且如果我在进入某个子进程的递归时,其他的子进程退出,那我就无法获得已经退出子进程的子进程了
HANDLE hProcess,
LPDWORD lpExitCode
用这个试试
应该可以对付你自己的进程以及你自己进程启动的别人的进程,如果出现"孙"进程,如果还要用上面的,那要想法得到他孙进程句柄.不知道能不能用"作业"来实现,我晚上回去看看< 核心编程> 再来和大家讨论学习
请详细点,返回值可以确定此进程是否有子进程吗?
不止是有孙进程,可能还会有曾孙增增孙进程
WaitForMultipleObjects(nCount,lpHandles,TRUE,INFINITE);
DWORD CXXXXXDlg::FindAppProcessID()
{
HANDLE handle=::CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
PROCESSENTRY32 Info;
Info.dwSize = sizeof(PROCESSENTRY32);
if(::Process32First(handle,&Info))
{
do{
CString ss=Info.szExeFile;
if(!ss.CompareNoCase(m_strSoft+".exe"))
{
::CloseHandle(handle);
return Info.th32ProcessID;
}
}
while(::Process32Next(handle,&Info));
::CloseHandle(handle);
}
return -1;
}