2010-08-03 1707 views
2

在我的Win32应用程序中,我有能力运行具有重定向输入和输出的子进程到我创建和管理的匿名管道 - 这全部与CreateProcess()函数一起使用。 但是在Win7上(假设Vista)如果该进程需要以管理员身份运行,那么这将失败。因此,我正在寻找的是一种在explorer中执行相当于“以管理员身份运行”命令的方式,该命令将引发标准的UAC提示,然后使用提升的权限创建该进程。 我已经看到文章谈论使用ShellExecute的“runas”选项来做到这一点,但后来我看到它,我没有控制我需要重定向标准输入和输出到我的管道。 有什么建议吗?CreateProcess以管理员身份运行

+0

这可能是不可能的。你能修改孩子的应用程序吗? – adf88 2010-08-03 10:01:30

回答

2

如果你在子应用上放置了一个清单,并且如果你使用ShellExecute来启动,它将使用清单并且会有一个UAC提示。 (在大多数情况下,我更喜欢这种“runas”方法)。这可能允许您以您喜欢的方式启动应用程序,而不用担心UAC,并从清单中获取提升权。

但是,如果您所指的“管理”部分涉及与较高权限应用程序通信的较低权限应用程序,则可能会出现问题。 UAC禁止这种情况。

相关问题