【问题标题】:Redirecting process stdout for ShellExecute (or some other way to elevate and redirect) [duplicate]重定向ShellExecute的进程标准输出(或其他提升和重定向的方式)[重复]
【发布时间】:2017-02-28 13:39:25
【问题描述】:

我正在使用裸 Win32Api。 我需要启动具有提升权限的应用程序并且应用程序没有清单。因此,唯一的方法是将ShellExecuteExrunAs 动词一起使用。它有效,但我需要阅读进程标准输出。有了CreateProcess,我就有了STARTUPINFO,我可以用它来管道处理标准输出。

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

【问题讨论】:

  • 调用 ShellExecute 提升和 CreateProcess 重定向。
  • 我也尝试将 requireAdministrator 添加到我的清单中,但我需要签名以防止黄色警告
  • 好吧,那就拿个代码签名证书吧。不难。

标签: windows winapi shellexecute


【解决方案1】:

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

如果可能,创建您自己的进程,您可以启动提升。此过程可能会捕获标准输出。使用一些 IPC 与此进程通信以获取标准输出。

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

这个问题已经被问过并且是duplicate to。 另请参阅question about elevating

【讨论】:

猜你喜欢
  • 2013-06-02
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-20
  • 2011-12-08
  • 1970-01-01
相关资源
最近更新 更多