啓動進程參數注意

        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.nShow = SW_SHOWNORMAL;
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);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章