标 题: [合集] 请问:在VC程序中如何结束掉另一个正在运行中的进程?
发信站: BBS 水木清华站 (Tue Jan 18 16:40:59 2005), 站内
☆─────────────────────────────────────☆
colorwind (多彩的风) 于 (Mon Jan 17 15:38:24 2005) 提到:
用TerminateProcess()似乎不工作,不知道是不是我调用的不对
请牛人指点一下,谢谢
☆─────────────────────────────────────☆
psistorm (sc心灵风暴) 于 (Mon Jan 17 15:48:39 2005) 提到:
【 在 colorwind (多彩的风) 的大作中提到: 】
: 用TerminateProcess()似乎不工作,不知道是不是我调用的不对
: 请牛人指点一下,谢谢
试试ExitProcess
☆─────────────────────────────────────☆
colorwind (多彩的风) 于 (Mon Jan 17 15:53:03 2005) 提到:
这个好像是结束本程序的啊
我想在运行的程序中结束掉另外一个运行的程序
【 在 psistorm (sc心灵风暴) 的大作中提到: 】
: 试试ExitProcess
☆─────────────────────────────────────☆
colorwind (多彩的风) 于 (Mon Jan 17 15:56:34 2005) 提到:
比如我在pp.exe中,调用某个函数结束掉正在运行的pig.exe
怎么实现啊?
【 在 colorwind (多彩的风) 的大作中提到: 】
: 这个好像是结束本程序的啊
: 我想在运行的程序中结束掉另外一个运行的程序
☆─────────────────────────────────────☆
dongjf (惊喜,不想错过) 于 (Mon Jan 17 15:57:46 2005) 提到:
用得不对,这个函数太霸道,什么都能给你强制中止,所以带来的问题也很多,最好推荐不
要用它。可以采取别的方法让进程终止(让它自已返回)。
【 在 colorwind (多彩的风) 的大作中提到: 】
: 用TerminateProcess()似乎不工作,不知道是不是我调用的不对
: 请牛人指点一下,谢谢
☆─────────────────────────────────────☆
colorwind (多彩的风) 于 (Mon Jan 17 16:01:40 2005) 提到:
我现在知道要终止的进程的ID
然后得到了它的句柄hProcess
下面是我调用的语句
TerminateProcess(hProcess,(UINT)lpExitCode);
可是就是结束不掉那个进程啊,郁闷
ExitProcess()比较爽,一下就把自己结束了
除了用TerminateProcess()外,还有那些函数比较好用的?
【 在 dongjf (惊喜,不想错过) 的大作中提到: 】
: 用得不对,这个函数太霸道,什么都能给你强制中止,所以带来的问题也很多,最好推荐
不要用它。可以采取别的方法让进程终止(让它自已返回)。
☆─────────────────────────────────────☆
psistorm (sc心灵风暴) 于 (Mon Jan 17 16:08:16 2005) 提到:
【 在 colorwind (多彩的风) 的大作中提到: 】
: 我现在知道要终止的进程的ID
: 然后得到了它的句柄hProcess
: 下面是我调用的语句
: ...................
那是不是你的ID有问题阿
☆─────────────────────────────────────☆
colorwind (多彩的风) 于 (Mon Jan 17 16:23:56 2005) 提到:
我用EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded )
得到所有运行当中的进程的ID
然后逐一检查ProcessName
如果ProcessName是我要找的"pig.exe"
则得到它的句柄hProcess
ID应该没有错
句柄是这样得到
HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
【 在 psistorm (sc心灵风暴) 的大作中提到: 】
: 那是不是你的ID有问题阿
☆─────────────────────────────────────☆
psistorm (sc心灵风暴) 于 (Mon Jan 17 16:33:51 2005) 提到:
【 在 colorwind (多彩的风) 的大作中提到: 】
: 我用EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded )
: 得到所有运行当中的进程的ID
: 然后逐一检查ProcessName
: ...................
你的OpenProcess的第一个参数|一个PROCESS_TERMINATE就行了吧
☆─────────────────────────────────────☆
colorwind (多彩的风) 于 (Mon Jan 17 17:59:25 2005) 提到:
o 果然,居然还有这个参数,ft了
3q very much
【 在 psistorm (sc心灵风暴) 的大作中提到: 】
: 你的OpenProcess的第一个参数|一个PROCESS_TERMINATE就行了吧
☆─────────────────────────────────────☆
Ryx (向牛人学习的菜鸟) 于 (Mon Jan 17 22:28:14 2005) 提到:
找到那个Process得主窗口
PostQuitMessage之,安全有效
【 在 colorwind (多彩的风) 的大作中提到: 】
: 用TerminateProcess()似乎不工作,不知道是不是我调用的不对
: 请牛人指点一下,谢谢
☆─────────────────────────────────────☆
andygemini (扫阿姨的垃圾李奇) 于 (Mon Jan 17 23:13:18 2005) 提到:
由processid或hprocess如何得到相应的主窗口了,哪个api
【 在 Ryx (向牛人学习的菜鸟) 的大作中提到: 】
找到那个Process得主窗口
PostQuitMessage之,安全有效
【 在 colorwind (多彩的风) 的大作中提到: 】
: 用TerminateProcess()似乎不工作,不知道是不是我调用的不对
: 请牛人指点一下,谢谢
moyun (墨韵|君子光而不耀) 于 (Mon Jan 17 23:34:22 2005) 提到:
有一种情况就是,在子线程中无论如何不能直接关掉父线程的……
我有一回犯过这种错误,呵呵
【 在 colorwind (多彩的风) 的大作中提到: 】
: 我用EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded )
: 得到所有运行当中的进程的ID
: 然后逐一检查ProcessName