从ShellExecute获取PID

我从ShellExecuteEx启动一个进程,我真的需要得到ProcessID(这是这个类的要求的一部分)。

不知何故,所有重要的SHELLEXECUTEINFO返回null。 所以例如,如果我使用这个代码:

 exInfo.lpVerb = "open"; exInfo.lpFile = "C:\\Windows\\system32\\cmd.exe"; exInfo.nShow = 5; ShellExecuteExA(exInfo); 

它启动了CMD.exe。 但现在我需要得到它的PID。 exInfo.hwnd返回0exInfo.hProcess返回null 。 这是正常的行为?

我不想诉诸使用CreateProcess(),因为我的函数也应该能够启动文件,如“C:\ doc1.docx”。 这只是一个方法,我不能预测将要发射什么(所以我不能预先知道窗口标题/类名,从那里得到hWnd,然后得到PID)。

有人能指出我的错误吗? 谢谢。

Solutions Collecting From Web of "从ShellExecute获取PID"