进程退出

lyislm 2002-03-27 09:16:36
我用一进程去createprocess(一个别人的exe文件);成功后正常运行,并返回一些信息
这个exe运行着,最后它退出了。问题是:

但我自己的进程却不知道这个exe是什么什么时候退出的。

有没有什么办法搞定他!小弟多谢先。




...全文
25 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyislm 2002-03-27
  • 打赏
  • 举报
回复
这里面牛人一大堆啊
prometheusphinx 2002-03-27
  • 打赏
  • 举报
回复
当你创建进程后,保留它的句柄,以后你就可以用OpenProcess来判断进程是否已经结束啦。
cz 2002-03-27
  • 打赏
  • 举报
回复
DWORD lpExitCode;
if( GetExitCodeProcess(stProcessInfo.hProcess, &lpExitCode) )
{
while( lpExitCode == STILL_ACTIVE )
{
GetExitCodeProcess(stProcessInfo.hProcess, &lpExitCode);

MSG msg;
while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}

可以检测创建的进程是否退出。
dockbar 2002-03-27
  • 打赏
  • 举报
回复
int ExecuteProcess(unsigned short *exePath, int modal)
{
PROCESS_INFORMATION proInf;
STARTUPINFO startUpInf;
// BOOL bRtn;
LPTSTR lpMsgBuf;

// PROCESS_INFORMATION
memset(&proInf, 0, sizeof (PROCESS_INFORMATION));
memset(&startUpInf, 0, sizeof (STARTUPINFO));
startUpInf.cb = sizeof (STARTUPINFO);
startUpInf.lpReserved = NULL;
startUpInf.lpDesktop = NULL;
startUpInf.lpTitle = NULL;
startUpInf.dwFlags = STARTF_USESTDHANDLES;
startUpInf.lpReserved2 = NULL;
startUpInf.cbReserved2 = 0;
startUpInf.hStdInput = NULL;
startUpInf.hStdOutput = NULL;
startUpInf.hStdError = NULL;
if (modal)
startUpInf.wShowWindow = SW_SHOW;
else
startUpInf.wShowWindow = SW_HIDE;

CreateProcess (NULL,
exePath,
NULL, NULL, FALSE, DETACHED_PROCESS, 0, NULL,
&startUpInf,
&proInf);

FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(),// Default Language
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL );
LocalFree( lpMsgBuf );

if (modal) {
WaitForSingleObject (proInf.hProcess, INFINITE);
}

return 0;
}


用这个。。。 呵呵
killhs 2002-03-27
  • 打赏
  • 举报
回复
你可创建一个线程等待!
WaitFor...这个函数我一下忘了!
我告诉你调用格式!
WaitFor...(ProcessHandle,等待时间(可设置为一直等))
这函数一直等待到程序结束。
lyislm 2002-03-27
  • 打赏
  • 举报
回复
dockbar,的formatmessage()用来干什么用的?
cz进入一个循环用消息处理,还是dockbar用waitforsingleobject()?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧