winapi - CreateProcess 以管理员身份运行

标签 winapi uac createprocess

在我的 Win32 应用程序中,我能够运行子进程,并将输入和输出重定向到我创建和管理的匿名管道 - 这一切都与 CreateProcess() 函数一起使用。 但是在 Win7(大概是 Vista)上,如果该进程需要以管理员身份运行,那么这将失败。所以我正在寻找一种方法来执行与资源管理器中的“以管理员身份运行”命令等效的方法,该命令将调出标准 UAC 提示符,然后创建具有提升权限的进程。 我看过一些文章,讨论如何使用 ShellExecute 的“runas”选项来执行此操作,但正如我所见,我没有控制权,我需要将标准输入和输出重定向到我的管道。 有什么建议吗?

最佳答案

如果您将 list 放在子应用程序上,并且如果您使用 ShellExecute 启动,它将使用 list 并且会有 UAC 提示。 (在大多数情况下,我更喜欢这种方法而不是“runas”方法。)这可以让您以自己喜欢的方式启动应用程序,而不必担心 UAC,并从 list 中获得提升。

但是,如果您提到的“管理”部分涉及权限较低的应用程序与权限较高的应用程序通信,您可能会遇到问题。 UAC 禁止这样做。

关于winapi - CreateProcess 以管理员身份运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3395015/

相关文章:

c++ - Listview 中的第一次机会异常设置检查状态

c - C 和 D 中相同的_exact_代码会给出不同的结果——为什么?

c++ - 如何从 Windows LPBITMAP 或 HBITMAP 获取实际的字节数组?

c# - 无法将文件写入 Windows 7 中的 Application.StartupPath

c++ - 以管理员身份创建进程并获取其 ProcessInformation Like ProcessID

python - 如何在 python 中将 COLORREF 从 GetPixel() 转换为 RGB?

c++ - 为什么我的代码在 Windows 7 下无法在 "C:\Program Files"中创建目录?

windows - Windows如何决定是否显示UAC提示符?

创建进程和匿名管道

c++ - 具有未知变量类型的文件的最佳数据结构