把DEBUG_ONLY_THIS_PROCESS换成CREATE_NEW_PROCESS_GROUP就行了

解决方案 »

  1.   

    我的意思是先要让程序B进入被调试状态,然后结束我的调试程序A希望程序B继续运行按你们说的方法就ok了?我实验实验
      

  2.   

    shellexecute
    system
    或者开一个新的进程
      

  3.   

    在Windows里,父进程结束以后,他的子进程会自动独立运行成新的进程。
      

  4.   

    PROCESS_INFORMATION pi;
    STARTUPINFO si;
    //初始化变量
    memset(&si,0,sizeof(si));
    si.cb=sizeof(si);
    si.wShowWindow=SW_SHOW;
    si.dwFlags=STARTF_USESHOWWINDOW; //打开记事本程序
    BOOL fRet=CreateProcess(NULL,
    "c:\\windows\\notepad.exe c:\\autoexec.bat",
    NULL,
    NULL,
    FALSE,
    NORMAL_PRIORITY_CLASS|CREATE_NEW_CONSOLE,
    NULL,
    NULL,
    &si,
    &pi); if(!fRet)
    {//创建失败,显示错误信息
    LPVOID lpMsgBuf;
    FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | 
    FORMAT_MESSAGE_FROM_SYSTEM | 
    FORMAT_MESSAGE_IGNORE_INSERTS,
    NULL,
    GetLastError(),
    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
    (LPTSTR) &lpMsgBuf,
    0,
    NULL );
    AfxMessageBox( (LPCTSTR)lpMsgBuf);
    LocalFree( lpMsgBuf ); }
    else
    {
    AfxMessageBox("CreateProcess成功");
    m_hPro=pi.hProcess;
    }
      

  5.   


    只是DebugActiveProcess 才可以用DebugActiveProcessStop可能要从PEB里去掉DEBUG_ONLY_THIS_PROCESS标记,不然调试程序关闭,被调也会被关
      

  6.   

    或者你可以以暂停方法CreateProcess, 后用 DebugActiveProcess ,再恢复子进程继续运行
      

  7.   

    开个新线程
    VC->我爱编程群,成立了,群号:65755783,欢迎学习和使用VC的朋友加入
      

  8.   

    ShellExecute就可以执行外部的应用程序的,没必要自己建立进程
      

  9.   


    你如果想要关闭,需要重新写代码,先用FindWindow()找到他的窗口句柄,然后发送WM_CLOSE消息即可。
      

  10.   

    仅在主进程退出需关闭子进程时需作特殊处理.
    如不需要主进程关闭后退出子进程的话,直接CreateProcess即可,无需作其它处理,