【发布时间】:2012-06-19 05:01:07
【问题描述】:
我需要做一些注册表操作和其他系统操作,因为我需要管理员权限。当前用户必须以“以管理员身份运行”启动我的应用程序。
那么我怎样才能以管理员权限启动我的应用程序?
【问题讨论】:
我需要做一些注册表操作和其他系统操作,因为我需要管理员权限。当前用户必须以“以管理员身份运行”启动我的应用程序。
那么我怎样才能以管理员权限启动我的应用程序?
【问题讨论】:
CreateProcessAsUser 或 CreateProcessWithLogonW 是您需要的主要内容。对于CreateProcessAsUser,您需要使用其他一些东西来让它发挥作用(例如,AdjustTokenPrivileges 启用它使用的权限,LogonUser 获取用户的令牌)。
【讨论】:
您也可以为此目的使用ShellExecuteEx()。该例程需要一个 SHELLEXECUTEINFO 结构传递给它。此结构的相关属性是“lpverb”,必须将其设置为值“runas”。这将确保以提升的权限运行的任务。
【讨论】:
答案涉及以编程方式启动它,但如果程序的全部目的是以管理员身份运行以进行这些更改,您可以添加 appropriate manifest 以使 Windows 为您提升。
【讨论】:
如果您的应用程序只有一部分需要管理员访问权限,请查看COM elevation。
【讨论】: