2

在我的代码中,我需要检测当前用户是否有权安装其他应用程序(其他应用程序 VC2005 redist.package)......它应该可以在 Vista 上运行。

据我了解 CheckTokenMembership 或 IsAdministrator 没有给出完整的解决方案。

谢谢

4

3 回答 3

1

这不是 UAC 的工作方式,99.99% 的情况下答案是否定的。您通过请求获得访问权限。在安装程序中包含清单。redist 安装程序已经具有该清单。

于 2010-03-14T14:37:37.490 回答
1

虽然当前登录的用户可能没有安装权限,但仍可能会通过身份验证对话框提示他们(“过肩”安装)。如果在此对话框中输入了有效的用户名和密码,则可以安装。因此,这不是您可以可靠检查的内容,因为用户在技术上是“允许的”,但只有在他们输入正确的用户名/密码后才能进行检查。

您最好的解决方案是尝试提升并在失败时优雅地失败:)

于 2010-03-16T03:26:07.163 回答
0

查看 PrivilegeCheck 功能: http: //msdn.microsoft.com/en-us/library/aa379304 (VS.85).aspx

于 2010-03-14T13:54:42.983 回答