如何在一个程序中停掉另一个程序

wmh_gy 2001-08-01 08:06:55
大侠们好!最近我编了一个东东,在应用初使化的时候,用
if (counter == 0)
{
if (WinExec("rscmgr.exe",SW_HIDE)<31)
{
CDialog::OnCancel();
return;
}
if (WinExec("rsctcp.exe",SW_HIDE)<31)
{
CDialog::OnCancel();
return;
}
}启动了RSCMGR.exe和rsctcp.exe
请问如何才能停下它们呢?
...全文
94 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
LZLZ 2001-08-01
不好意思,后台两个程序是系统的,还是你自己编写的?
回复
xlfrd 2001-08-01
我以前用过的一个办法可供一试,遍历进程你会吧,找出这两个进程主线程的ID,然后
::PostThreadMessage(threadid,WM_QUIT,0,0);
这样可以保证资源的释放。
回复
五行擒拿术 2001-08-01
我找不出一定要用WinExec的理由
The WinExec function runs the specified application.

Note This function is provided only for compatibility with 16-bit Windows. Win32-based applications should use the CreateProcess function.
回复
wmh_gy 2001-08-01
sorry! rscmgr.exe and rsctcp.exe 只是一个后台程序,无法得到它的hwnd
回复
duhualin 2001-08-01
gz
回复
unkill 2001-08-01
RSCMGR.EXE和RSCTCP.EXE是Windows程序吧,你可以用FindWindow来找到主窗口的HWND,
然后通过SendMessage(hWnd,WM_CLOSE),来停止他,这样做还不会造成资源无法释放。
回复
Matrix_w 2001-08-01
调用CloseHandle函数也可,但不会影响资源释放。
回复
wmh_gy 2001-08-01
非常感谢各位,我还是想不改WINEXEC,只需要让它在我主程序停止时,让RSCMGR.EXE和RSCTCP.EXE也停下。
回复
五行擒拿术 2001-08-01
难道你还想控制鼠标来按它的关闭按钮??
回复
LZLZ 2001-08-01
最好不要用TERMINATEPROCESS(),会造成某些资源无法释放
回复
五行擒拿术 2001-08-01
晕倒,居然一样的答案。。。前后相差27秒钟
回复
五行擒拿术 2001-08-01
建议用CreateProcess()产生,这样可以得到用用程序的句柄,
如果你要终止它可以用TerminateProcess()
回复
unkill 2001-08-01
你可以用CreateProcess来启动其他程序(不用winexec),可以返回Process的handle,
在你想要停止的地方用TerminateProcess(handle)强行停止。
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2001-08-01 08:06
社区公告

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