This question already has answers here:
Using ShellExecuteEx and capturing standard in/out/err

(5个答案)


3年前关闭。




我正在使用裸Win32Api。
我需要以提升的权限启动应用,而应用没有 list 。因此,唯一的方法是将ShellExecuteExrunAs动词一起使用。它可以工作,但是我需要阅读流程标准输出。使用CreateProcess,我有STARTUPINFO,可用于通过管道传输标准输出。

但是ShellExecuteEx没有这样的API。
那么,如何提升和重定向标准输出?

最佳答案

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

如果可能,请创建您自己的进程,然后启动它。此过程可能会捕获标准输出。使用一些IPC与该过程进行通信以获得标准输出。

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

这个问题已经被问到了,它是duplicate to
另请参见question about elevating

关于windows - 重定向ShellExecute的流程标准输出(或其他提升和重定向的方式),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42510319/

10-11 04:21