redirectShellExecute的进程标准输出(或其他方式来提升和redirect)

我正在使用裸露的Win32Api。 我需要启动与提升权限的应用程序和应用程序没有清单。 所以,唯一的方法是使用带有runAs动词的ShellExecuteEx 。 它的工作原理,但我需要读取过程标准输出。 使用CreateProcess ,我可以使用STARTUPINFO来pipe理stdout。

但是ShellExecuteEx没有这样的API。 那么,我该如何提升redirect标准输出呢?

这不可能。 要读取标准输出CreateProcess是必需的。 但CreateProcess无法启动另一个进程提升…

如果可能的话,创建自己的过程,你可能会推出提升。 这个过程可能捕获stdout。 使用一些IPC来与这个进程通信来获得标准输出。

或者使用简单的管道重定向。

这个问题已经被问到,是重复的 。 另请参阅关于提升的这个问题 。