【问题标题】:How to launch an application with admin rights in c++?如何在 C++ 中启动具有管理员权限的应用程序?
【发布时间】:2012-06-19 05:01:07
【问题描述】:

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

那么我怎样才能以管理员权限启动我的应用程序?

【问题讨论】:

标签: c++ c winapi


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        如果您的应用程序只有一部分需要管理员访问权限,请查看COM elevation

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-06-25
          • 1970-01-01
          • 2021-10-21
          • 2015-05-07
          • 2016-09-29
          • 2012-01-12
          相关资源
          最近更新 更多