我在用IShellDispatch2.ShellExecute https://learn.microsoft.com/en-us/windows/desktop/shell/ishelldispatch2-shellexecute从我的提升进程中以标准用户身份运行进程,如中所述陈雷蒙德的文章 https://blogs.msdn.microsoft.com/oldnewthing/?p=2643。不像Shell执行Ex https://learn.microsoft.com/en-us/windows/desktop/api/Shellapi/nf-shellapi-shellexecuteexa,此方法不返回有关进程的任何信息。
我需要知道启动的进程何时完成,并且我可能需要其退出代码。有没有办法获取此进程的句柄(除了拍摄快照之外的任何其他方式)?
您不能这样做,因为 shell 不会公开 ShellExecuteEx 方法,即使公开了,返回的进程句柄在您的进程中也将无效。
我能想到的最简单的解决方案是创建一个小帮助应用程序,充当 shell 和您想要启动的实际应用程序之间的中间人。这个中间人应用程序可以调用ShellExecuteEx
并在子进程退出时将消息发送回您的实际应用程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)