SHELLEXECUTEINFO exeInfo;
exeInfo.cbSize = sizeof(SHELLEXECUTEINFO);exeInfo.fMask = (SEE_MASK_DOENVSUBST|SEE_MASK_FLAG_DDEWAIT|0x04000000|SEE_MASK_NOCLOSEPROCESS|SEE_MASK_NO_CONSOLE);
exeInfo.hwnd = NULL;
exeInfo.lpVerb = _T("open");
exeInfo.lpFile = _T("c:\\IPCClient.exe");
exeInfo.lpParameters = L"test";
exeInfo.lpDirectory = L"c:\\windows";
//今天查一個bug 調用shellexcute的函數啓動一個子進程的時候,發現傳入的工作目錄參數沒有生效。
//當時調用的是 exeInfo.lpDirectory = GetWorkingDirectory();
//後來排查 發現是返回的字符空間被釋放了 寫個博客記錄下
exeInfo.hInstApp = NULL;
exeInfo.lpIDList = NULL;
exeInfo.lpClass = NULL;
exeInfo.hkeyClass = NULL;
exeInfo.dwHotKey = NULL;
exeInfo.hMonitor = NULL;
exeInfo.hIcon = NULL;
exeInfo.hProcess = NULL;
int nRet = ::ShellExecuteEx(&exeInfo);