1.进程A中:用CreateProcess (NULL,comm,NULL,NULL,TRUE,DEBUG_PROCESS,NULL,NULL,&si2,&pi)启动进程B;
2.进程A中:用while(WaitForDebugEvent(&dbe,PDD.m_pro_timelimit*2)){……}监视进程B的异常;
3.进程A中:如果B出现异常,则用TerminateProcess结束进程B。如果正常退出,就不调用此函数;
4.出现问题:A尚在运行时,打开任务管理器,发现进程B还在,而且手动也杀不掉(尝试杀掉时没有任何反应)。但如果进程A退出,B就自动退出了。
5.请求解决办法......

解决方案 »

  1.   

    与你的 DEBUG_PROCESS参数有关 此时进程A相当于调试器,进程B类似被调试程序,被调试程序是无法被其他外部程序所结束,只能由调试器本身结束停止
      

  2.   

    我就是在A中调用TerminateProcess关掉B的,A就是B的调试器啊。
      

  3.   


    A调试着B,除非A退出了B才会退出.
    就算在A里面TerminateProcess关掉B,进程里面B肯定还是存在的.因为他被A调试着
      

  4.   

    1.进程A中:用CreateProcess (NULL,comm,NULL,NULL,TRUE,DEBUG_PROCESS,NULL,NULL,&si2,&pi)启动进程B; 
    2.进程A中:用while(WaitForDebugEvent(&dbe,PDD.m_pro_timelimit*2)){……}监视进程B的异常; 
    3.进程A中:如果B出现异常,则在运行一个A进程,然后结束自身A进程,B也会跟着结束,因为B被A调试着.
      

  5.   

    你的想法应该可以实现的,因为ollydbg调试器可以实现你想要的功能,
      

  6.   

    可试试使用DebugActiveProcessStop分离调试器和被调试进程,然后再TerminateProcess。