如何在Windows 7中请求管理员权限?

时间:2012-06-26 00:51:14

标签: c++ winapi windows-7

我在Windows 7下使用Qt编写了一个应用程序。应用程序以普通用户权限启动,但我想获得管理员权限,因为我想修改注册表以自动启动应用程序。

我怎么能这样做?

6 个答案:

答案 0 :(得分:6)

查看MSDN示例:UAC self-elevation (CSUACSelfElevation)

此外,维基百科实际上has a pretty good reference包括有关提升请求的ShellExecuteEx() runas ”动词和应用程序清单的信息。

答案 1 :(得分:4)

你应该在你的exe中嵌入正确的清单:

http://msdn.microsoft.com/en-us/library/windows/desktop/bb756929.aspx

我知道,您说过使用win32 API,但请考虑这种标准和推荐方式。

答案 2 :(得分:3)

需要管理员权限才能自动启动您的应用程序。

只需将相应的密钥写入:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

不需要管理员权限(与HKEY_LOCAL_MACHINE下的相同路径不同)。

答案 3 :(得分:1)

请注意,程序运行时无法更改权限。必须使用正确的权限杀死并重新启动它。

答案 4 :(得分:1)

要自动启动应用程序,您不需要管理员权限!不要在HKLM(你需要管理员权限)下添加注册表项,而是使用HKCU,你没事。

答案 5 :(得分:-1)

要在HKLM中启动应用程序自动启动,需要管理权限。但是运行时应用程序的权限无法改变。

所以我创建了一个新的小应用程序,其任务只是编写注册表以使主应用程序自动启动。

主应用程序可以使用ShellExecuteEx调用此应用程序以要求管理权限。