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);