想建立一个按钮,点击按钮调用EXE,EXE启动后窗体最小化到托盘,结束EXE后恢复窗体,麻烦大家了。

解决方案 »

  1.   

    DWORD dwExitCode;
    STARTUPINFO siStartInfo = {sizeof(siStartInfo)};//用于在创建子进程时设置各种属性 
    PROCESS_INFORMATION piProcInfo; //用于在进程创建后接受相关信息
    BOOL ret = ::CreateProcess(NULL, strFilePath, NULL, NULL, FALSE, 0, NULL, NULL, &siStartInfo , &piProcInfo);
    if (ret) 
    {

    // 关闭子进程的主线程句柄
    CloseHandle(piProcInfo.hThread);
    // 等待子进程的退出
    // WaitForSingleObject(piProcInfo.hProcess, INFINITE);
    // 获取子进程的退出码
    GetExitCodeProcess(piProcInfo.hProcess, &dwExitCode);
    // 关闭子进程句柄
    CloseHandle(piProcInfo.hProcess);
    }
    这个是可以自己控制参数的调用方法,还有两种简单的方法,网上都有,lz自己查吧
      

  2.   

    只能告诉你大致的做法,你自己去做。
    在按钮的处理函数中用CreateProcess启动外部进程,如果返回值为TRUE,表示成功,那么就可以最小化到托盘了,最小化到托盘的一般方法是用
    BOOL Shell_NotifyIcon(          
        DWORD dwMessage,
        PNOTIFYICONDATA lpdata
    );
    这个可以添加一个托盘图标,对于主窗口,你可以用ShowWindow(SW_HIDE)隐藏起来。
    然后用WaitForSingleObject来等待外部进程的句柄,当外部EXE结束时,这个函数返回,此时可以用Shell_NotifyIcon将托盘图标删除,同时对主窗口ShowWindow(SW_SHOW);显示主窗口
      

  3.   

    http://user.qzone.qq.com/415431019/infocenter我摘抄到QQ空间日记了...出处哪的忘了
      

  4.   

    http://user.qzone.qq.com/415431019/blog/1280480497
    应该发这个 那个你估计点不进去..