【发布时间】:2010-03-14 13:49:08
【问题描述】:
在我的代码中,我需要检测当前用户是否有权安装其他应用程序(其他应用程序 VC2005 redist.package)...它应该可以在 Vista 上运行。
据我了解,CheckTokenMembership 或 IsAdministrator 没有给出完整的解决方案。
谢谢
【问题讨论】:
标签: c++ installation windows-vista detection administrator
在我的代码中,我需要检测当前用户是否有权安装其他应用程序(其他应用程序 VC2005 redist.package)...它应该可以在 Vista 上运行。
据我了解,CheckTokenMembership 或 IsAdministrator 没有给出完整的解决方案。
谢谢
【问题讨论】:
标签: c++ installation windows-vista detection administrator
这不是 UAC 的工作方式,99.99% 的情况下答案是不。您通过请求获得访问权限。在您的安装程序中包含a manifest。 redist 安装程序已经拥有该清单。
【讨论】:
虽然当前登录的用户可能没有安装权限,但仍可能会通过身份验证对话框提示他们(“过肩”安装)。如果在此对话框中输入了有效的用户名和密码,则可以安装。因此,这不是您可以可靠检查的内容,因为用户在技术上是“允许的”,但只有在他们输入正确的用户名/密码后才能进行检查。
您最好的解决方案是尝试提升并在失败时优雅地失败:)
【讨论】:
查看 PrivilegeCheck 功能:http://msdn.microsoft.com/en-us/library/aa379304(VS.85).aspx
【讨论】: