首页
社区
课程
招聘
[旧帖] 父程序使用ShellExecute打开子程序后,被子程序关闭!? 0.00雪花
发表于: 2011-3-18 00:03 7086

[旧帖] 父程序使用ShellExecute打开子程序后,被子程序关闭!? 0.00雪花

2011-3-18 00:03
7086
我写了个小程序,在程序中使用 ShellExecute 启动了外部的一个程序!

父程序很简单,一个对话框窗口上就一个按钮,每点击一次开启一个子程序!
子程序一个网游客户端,但是只要其中任一子程序点击了一个按钮,父程序便会马上退出!

问题是:我不想父程序退出,除非我手动关闭!

有没有兄弟碰到过类似情况的?帮忙分析下,如果才能保证父程序不被关闭?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 393
活跃值: (150)
能力值: (RANK:110 )
在线值:
发帖
回帖
粉丝
2
由于你描述的不清楚,先假设如下;
1,你用VC++ 6.0编程,且是MFC程序;
2,你的父程序功能很简单,就是一个Dialog对话框。

你得看你点击按钮的行为里面都有哪些动作,特别是在ShellExe之后。比如IDOK,在干完你要做的事情后,就会执行CDialog::OnOK();这样整个界面都销毁了。当然得退出,只需要把这个注释掉就好了。

如果有其他问题,我只能抱歉的说,你描述的太不详细了,缺乏应用程序员应该有的条理。
2011-3-18 08:36
0
雪    币: 294
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
先感谢你的回复!

父程序是非正常退出的,是我点击子程序上的某个按键后(每次都是)父程序才退出的!

程序使用VC6+MFC做的!

另外我也抱歉的说,你的理解能力比较有限...
2011-3-18 14:11
0
雪    币: 53
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
首先你说是非正常退出?

我觉得情况可能是以下几种。
1、你按钮运行的Shellexecute之后就CDialog::OnOK();了
可以注释掉CDialog::OnOK();或者在这上面加上return 0;

2、可能为客户端保护、一般情况应该不会出现、你试试用WinExec打开看看会关闭不?
再者就是直接CMD打开看看、

如上述2种情况都没有解决这个问题、那么就是你RP的问题了。

回答完毕、谢谢。
2011-3-20 04:05
0
雪    币: 294
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
虽然我没有找到具体原因,但是基本可以断定是子程序启动后杀掉父程序!

我的解决方案也很简单:爷爷生儿子,儿子生孙子,孙子杀儿子,孙子杀不了爷爷...:)
2011-3-20 17:49
0
游客
登录 | 注册 方可回帖
返回
//