如何判断一个程序是否还在运行?(在线等)

oldwolf201 2003-12-04 03:46:44
我是shellexecute()启动了一个执行程序,我知道这个这个程序所在的路径和文件名。但我如何判断这个程序是否还在运行?
即用shellexecute()启动一个程序后,我的程序自动隐藏为一个后台程序,监视我启动的程序是否还在运行,一旦被关闭,则再次激活主程序?
...全文
136 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldwolf201 2003-12-04
  • 打赏
  • 举报
回复
晕啊,我用的是自动保存密码,太久没自己输入密码了,现在记不起密码了?如何才能找回密码?
fingerfox 2003-12-04
  • 打赏
  • 举报
回复
CMutex
leon_z 2003-12-04
  • 打赏
  • 举报
回复
可以,不过你要自已写一个后台线程,因为你的程序会阻断在这个函数中,直到被启动的进程终止
oldwolf201 2003-12-04
  • 打赏
  • 举报
回复
谢谢帮助
leon_z 2003-12-04
  • 打赏
  • 举报
回复
呵呵,我说过了,这是我用过的,我从以前写的程序中剪下来的,当然会快一些了,相当初写这个东东时,还是费了我不少时间的呀(CreateProcess的参数好多,看晕)
oldwolf201 2003-12-04
  • 打赏
  • 举报
回复
谢谢~~~
上面那段代码很好用啊~~

不过在等待的时候就不能进行其他操作了吗?
wangweixing2000 2003-12-04
  • 打赏
  • 举报
回复
85125(85125) 好快呀
topwork 2003-12-04
  • 打赏
  • 举报
回复
就是这么回事;
85125(85125)好快呀,我还在写呢;
leon_z 2003-12-04
  • 打赏
  • 举报
回复
这是我用的方法

void WaitExec(char * lpCommLin)
{
PROCESS_INFORMATION ProcInfo;
LPSTARTUPINFO lpStartUp = new STARTUPINFO;
memset(lpStartUp,0,sizeof(STARTUPINFO));
lpStartUp->cb = sizeof(STARTUPINFO);

if(!CreateProcess( NULL,lpCommLin, NULL, NULL, FALSE, NULL, NULL, NULL, lpStartUp, &ProcInfo))
{
DWORD dwError = GetLastError();
CString temp;
temp.Format("错误代码: %d",temp)
AfxMessageBox(temp);
exit(0);
}

if(WAIT_TIMEOUT != WaitForSingleObject(ProcInfo.hProcess,INFINITE))
{
if(ProcInfo.hThread != 0)
{
CloseHandle( ProcInfo.hThread);
}
if(ProcInfo.hProcess != 0)
{
CloseHandle(ProcInfo.hProcess);
}
}
}
函数返回之后,把你的程序激活就是
oldwolf201 2003-12-04
  • 打赏
  • 举报
回复
能给出点具体的代码吗?
我对进程不熟悉
topwork 2003-12-04
  • 打赏
  • 举报
回复
shellexecute不行,用CreateProcess吧,里面有该程序的实例句柄,这样就可以调用WaitForSingleObject来判断了。
如果非得以用shellexecute,那么只能用OpenProcess得到实例句柄,然后还是用WaitForSingleObject来判断。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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