在我的 Win32 应用程序中,我能够运行子进程,并将输入和输出重定向到我创建和管理的匿名管道 - 这一切都与 CreateProcess() 函数一起使用。 但是在 Win7(大概是 Vista)上,如果该进程需要以管理员身份运行,那么这将失败。所以我正在寻找一种方法来执行与资源管理器中的“以管理员身份运行”命令等效的方法,该命令将调出标准 UAC 提示符,然后创建具有提升权限的进程。 我看过一些文章,讨论如何使用 ShellExecute 的“runas”选项来执行此操作,但正如我所见,我没有控制权,我需要将标准输入和输出重定向到我的管道。 有什么建议吗?
最佳答案
如果您将 list 放在子应用程序上,并且如果您使用 ShellExecute 启动,它将使用 list 并且会有 UAC 提示。 (在大多数情况下,我更喜欢这种方法而不是“runas”方法。)这可以让您以自己喜欢的方式启动应用程序,而不必担心 UAC,并从 list 中获得提升。
但是,如果您提到的“管理”部分涉及权限较低的应用程序与权限较高的应用程序通信,您可能会遇到问题。 UAC 禁止这样做。
关于winapi - CreateProcess 以管理员身份运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3395015/