3

我正在使用 Visual C++ 2010 开发一个应用程序,该应用程序针对 Windows 7。有一项任务是将一些值写入注册表,这只会在某些特殊情况下发生。并且由于在 Windows 7 中,需要具有管理员权限才能执行此操作。我如何以某种方式对我的应用程序进行编程,当需要执行此类操作时,它会要求管理员权限,并且在启动时不会要求管理员权限。谢谢。

4

1 回答 1

4

就像马克说的那样,你不能按需提升你的特权。一个快速的解决方案是编写一个单独的可执行文件来完成编写部分,并在需要时使用特定的命令行参数启动它。当然,这个可执行文件必须在其清单中具有“requireAdministrator”权限。

您还可以将此程序设计为服务并设置 IPC 机制,例如使用命名管道。可以使用安全描述符创建管道本身,该安全描述符允许普通用户访问它,确保以较低权限运行的程序能够写入它。

第二种方法的目的是消除第一种解决方案中出现的讨厌的 UAC 提示。

于 2012-06-06T00:00:39.520 回答