在一个主程序中调用了一个.exe可执行文件,可一旦主程序调用了这个.exe,即弹出了.exe文件响应的对话框后,单独关掉主程序的界面,而.exe的界面依然存在。请问高手,如何实现在关掉主程序界面事,能让主程序调用的.exe的界面也跟着关闭?

解决方案 »

  1.   

    你是多进程,非多线程,因此主窗体关闭的时候,只关闭自己进程。
    你主进程关闭的时候SendMessage那个进程关闭掉即可。(反正你建的进程,很容易得到该进程的句柄,然后WM_CLOSE消息即可)
      

  2.   

    你是如何调用的?
    Shell来直接打开的还是用他的文件句柄的?最好能贴出调用他的代码若是用HWND句柄来打开这个exe的那么在程序关闭的时候可以::SendMessage(HWND,WM_CLOSE,0,0);
      

  3.   

    如果你是用CreateProcess创建的,返回值是该进程的句柄,明白了吧
      

  4.   

    OnClose()
    {
      ......
      ShellExcute(NULL,"open","store.exe",NULL,path,SW_SHOWNORMAL);
      ......
    }
    store.exe界面的名称为:存储
      

  5.   

    ShellExcute(NULL,"open","store.exe",NULL,path,SW_SHOWNORMAL);
    用CreateProcess创建的,返回值是该进程的句柄?这个的句柄不是HINSTANCE类型的么?
      

  6.   

    //BOOL fsuccess=0;
    BOOL fsuccess=CreateProcess(NULL,//lpApplicationName
    //
    if(fsuccess)
    {
    HANDLE hProcess=pinfo.hProcess;
    //关闭使用:
    BOOL TerminateProcess(
      HANDLE hProcess, // handle to the process
      UINT uExitCode   // exit code for the process
    );