如何在c ++中启动具有管理员权限的应用程序?

时间:2012-06-19 05:01:08

标签: c++ c winapi

我需要做一些注册表操作&我需要管理员权限的其他系统操作。目前用户必须以“以管理员身份运行”启动我的应用程序。

所以如何使用管理员权限启动我的应用程序?

4 个答案:

答案 0 :(得分:2)

CreateProcessAsUserCreateProcessWithLogonW是您需要的主要内容。对于CreateProcessAsUser,您需要使用其他一些东西来使其尽其所能(例如,AdjustTokenPrivileges启用其使用的权限,并LogonUser获取用户的令牌)。

答案 1 :(得分:2)

您也可以使用ShellExecuteEx()来实现此目的。此例程需要将SHELLEXECUTEINFO结构传递给它。该结构的相关属性是“lpverb”,必须将其设置为值“runas”。这将确保使用提升的priveleges运行的任务。

答案 2 :(得分:1)

答案涉及以编程方式启动它,但如果程序的整个目的是以管理员身份运行以进行这些更改,则可以添加appropriate manifest以使Windows升级。

答案 3 :(得分:0)

如果只有部分应用需要管理员权限,请查看COM elevation