我已经阅读了很多关于 Windows 7 中 UAC 升级的文章等等,但我没有成功找到我的问题的答案:如何保证我的应用程序将始终“以管理员身份运行”,我正在寻找一些代码片段或其他东西。任何帮助将不胜感激。/并且请不要发送垃圾邮件,例如:“您确定需要此权限和访问权限吗?” - 是的,我确定应用程序需要它们。
问问题
6632 次
4 回答
7
使用以下部分将应用清单添加到您的应用:
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
于 2011-09-20T07:51:26.870 回答
4
这篇 MSDN 文章解释了如何对 UAC 友好: Teach Your Apps To Play Nice with Windows Vista User Account Control
使用应用程序清单标记所需权限一章正是您所寻找的。
于 2011-09-20T07:53:22.250 回答
2
Windows 无法授予应用程序管理权限;权限由用户授予。
如果运行您的应用程序的用户没有管理权限,那么您的应用程序将没有管理权限。
程序不能因为程序希望而“保证永久”管理员权限。用户必须被授予权限。
- 您可以将您的应用程序设计为不需要管理权限:)
- 您可以宣传您的应用程序需要管理权限
- 关闭 UAC 后,请求将无法兑现 :(
- 与 UAC 的请求可能不会被兑现:(
但是不能要求应用程序被授予管理权限。
于 2011-09-20T23:57:42.850 回答
1
如果我理解正确,您的应用程序将成为用户外壳,即它将取代 Windows 资源管理器。在这种情况下,您可以通过多种方式绕过 UAC,例如,通过使用凭证管理器来捕获用户的凭证并使用它们来创建新令牌,或者通过挂钩 LogonUser 函数并捕获未修改的令牌。
但是,到目前为止,最简单的方法是禁用 UAC。除非用户将运行 Internet Explorer 或其他利用 UAC 沙盒的程序,否则可能没有理由在您的方案中打开 UAC。
于 2011-09-20T20:53:45.937 回答