// 执行外部EXE void RunAppToExit(CString sAppPath, CString sPara, int iWaitFlag, int iShowFlag); // ------------------------------------------------------------------ // 执行外部EXE // add by jzh 2009-07-05 // ------------------------------------------------------------------ void CommFunc::RunAppToExit(CString sAppPath, CString sPara, int iWaitFlag, int iShowFlag) { SHELLEXECUTEINFO exeInfo; exeInfo.cbSize = sizeof(SHELLEXECUTEINFO); exeInfo.fMask = SEE_MASK_NOCLOSEPROCESS; //设置为SellExecuteEx函数结束后进程退出 exeInfo.hwnd = NULL; exeInfo.lpVerb = "open"; //执行动作为“打开执行” exeInfo.lpFile = (LPCTSTR) sAppPath; //执行程序文件全路径名称 exeInfo.lpParameters = (LPCTSTR) sPara; //执行参数 exeInfo.lpDirectory = NULL; exeInfo.nShow = iShowFlag; //SW_SHOWNORMAL 1 exeInfo.hInstApp = NULL; exeInfo.lpIDList = NULL; exeInfo.lpClass = NULL; exeInfo.hkeyClass = NULL; exeInfo.dwHotKey = NULL; exeInfo.hMonitor = NULL; exeInfo.hIcon = NULL; exeInfo.hProcess = NULL; ::ShellExecuteEx(&exeInfo); if (iWaitFlag = 0) { if(exeInfo.hProcess) { ::WaitForSingleObject(exeInfo.hProcess,INFINITE); ::CloseHandle(exeInfo.hProcess); } } }