我需要做一些注册表操作和其他系统操作,我需要管理员权限。当前用户必须以“以管理员身份运行”启动我的应用程序。
那么我如何以管理员权限启动我的应用程序?
CreateProcessAsUser
或者CreateProcessWithLogonW
是您需要的主要内容。对于CreateProcessAsUser
,您需要使用一些其他的东西来让它发挥作用(例如,AdjustTokenPrivileges
启用它使用的权限,并LogonUser
获取用户的令牌)。
您也可以为此目的使用ShellExecuteEx ()。该例程需要一个 SHELLEXECUTEINFO 结构传递给它。此结构的相关属性是“lpverb”,必须将其设置为值“runas”。这将确保以提升的权限运行的任务。
答案涉及以编程方式启动它,但如果程序的全部目的是以管理员身份运行以进行这些更改,您可以添加适当的清单以使 Windows 为您提升。
如果只是您的应用程序的一部分需要管理员访问权限,请查看COM 提升。