console程序是有源代码的。
使用terminateProcess不能释放所有资源。
而BroadCastBroadcastSystemMessage要有消息处理,console程序我不知道怎么处理。
同时console程序普遍能够处理ctrl+c ctrl+break,能不能发送这样的事件给他呢?
或者有没有其它的方法,调用一个console程序,并且在需要关闭它的时候就能让它正常退出?

解决方案 »

  1.   

    CloseHandle(HANDLE)参数为CreateProcess得到的PROCESS_INFORMATION 里的hProcess
      

  2.   

    不明白,你的console不会自己结束吗?一定要用Ctrl+C?
      

  3.   

    console不是你自己编的吗?无限循环的也应该加一个退出情况的判定的。
      

  4.   

    在CreateProcess时,如果使用CREATE_NEW_PROCESS_GROUP,
    就会创建一个新的进程组.
    在你的Console程序中使用使用SetConsoleCtrlHandler函数可以
    设置ctrl+C/Ctrl break的处理方式.
    在你的父进程中使用GenerateConsoleCtrlEvent就可以向子进程发送信号
    终止它.