01.bool executePackage(LPCWSTR fileName, LPCWSTR args, LPCWSTR baseDir, bool wait)
02.{
03. SHELLEXECUTEINFOW sei = { sizeof(SHELLEXECUTEINFOW) };
04.
05. sei.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI;
06.
07. sei.lpFile = fileName;
08. sei.lpParameters = args;
09. sei.lpDirectory = baseDir;
10.
11. if (!ShellExecuteExW(&sei)) {
12. return false;
13. }
14.
15. if (wait) {
16. HANDLE hProcess = sei.hProcess;
17. if (hProcess != 0) {
18. WaitForSingleObject(hProcess, INFINITE);
19. CloseHandle(hProcess);
20. }
21. }
22.
23. return true;
24.} 看下这个代码,我再使用ShellExecuteExW启动一个快捷方式,然后快捷启动成功,但是为什么sei.hProcess的返回值确是0,求高手指导下。
CreateProcess貌似启动不了快捷方式
ShellExecuteEx能启动但返回的hProcess却是0.
Handle to the newly started application. This member is set on return and is always NULL if fMask is not set to SEE_MASK_NOCLOSEPROCESS