程序CreateProcess一个console软件(SW_HIDE),如何使其正常退出
console程序是有源代码的。
使用terminateProcess不能释放所有资源。
而BroadCastBroadcastSystemMessage要有消息处理,console程序我不知道怎么处理。
同时console程序普遍能够处理ctrl+c ctrl+break,能不能发送这样的事件给他呢?
或者有没有其它的方法,调用一个console程序,并且在需要关闭它的时候就能让它正常退出?
问题点数:100、回复次数:7Top
1 楼shesh(无所谓)回复于 2003-06-04 16:54:46 得分 0
用管道的方式让它退出,或者复制一个时间句柄进去,也可以用有名事件来控制.Top
2 楼cboy2wzhx(不懂就要问,知道了就告诉别人)回复于 2003-06-04 16:56:13 得分 0
CloseHandle(HANDLE)
参数为CreateProcess得到的PROCESS_INFORMATION 里的hProcessTop
3 楼NowCan(城市浪人)回复于 2003-06-04 17:47:04 得分 0
不明白,你的console不会自己结束吗?一定要用Ctrl+C?Top
4 楼lizhli(小三)回复于 2003-06-04 18:15:28 得分 0
那个console是无限循环的Top
5 楼BlueSky2008(懒惰是程序员的美德)回复于 2003-06-04 21:04:44 得分 0
console不是你自己编的吗?无限循环的也应该加一个退出情况的判定的。Top
6 楼FAICHEN(CC)回复于 2003-06-04 21:08:48 得分 0
terminate吧,虽然不提倡!Top
7 楼xxedge(好钢用在刀刃上)回复于 2003-06-04 21:38:33 得分 100
在CreateProcess时,如果使用CREATE_NEW_PROCESS_GROUP,
就会创建一个新的进程组.
在你的Console程序中使用使用SetConsoleCtrlHandler函数可以
设置ctrl+C/Ctrl break的处理方式.
在你的父进程中使用GenerateConsoleCtrlEvent就可以向子进程发送信号
终止它.Top
相关问题
- ShowWindow(SW_HIDE)和DestoryWindow有什么区别?
- 有关 ShowWindow(SW_HIDE) 和 ShowWindow(SW_SHOW) 的问题
- WinExec(应用程序 打开的文件,SW_MAXIMIZE);用CreateProcess如何实现啊??
- 如何用用CreateProcess读取Console程序的显示信息和返回结果?
- 请教:ShowWindow(MyForm,SW_HIDE)为何不起作用?
- delphi6,ShowWindow(handle,SW_HIDE)怎么无效????奇怪呀!
- AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE)应放在哪个位置?
- 为什么在SDK下调用ShowWindow(SW_HIDE);失败?
- 找createProcess()
- CreateProcess and WaitForInputIdle



