用程序检查用户是否有足够的权限安装软件

本文关键字:权限 安装 软件 程序 检查 用户 是否 | 更新日期: 2023-09-27 18:19:26

在我的应用程序(它只支持Windows 7及更高版本)中,我想运行一个脚本,它将运行一些安装程序。在执行之前,我需要检查从我的应用程序运行此脚本是否会为它提供足够的权限,使其可以运行安装。否则,Windows将拒绝执行此操作,并显示一条消息,解释启动我的应用程序的用户需要管理员权限。

根据这个问题,解决问题的简单方法并不总是正确的,但我也不喜欢其他建议(使用Win API)。

有人能解释我如何使用简单且文档齐全的.NET代码来解决我的问题,但不能使用Win API吗?

用程序检查用户是否有足够的权限安装软件

我知道这与您的"但不匹配Win API?"不匹配,但实际上,使用p/Invoke和Win32 API是可行的。

由于进程提升仅与Windows相关(因此,如果您想将代码与Mono一起使用,则这是没有意义的),因此依赖Win32 API是可以的

GetTokenInformation是一个很好的函数,只需确保将IntPtr用于特定于平台的大小(甚至更好:SafeHandle用于进程句柄),这样它就可以在x86/x64计算机上正常工作。

您可以先尝试请求管理员权限:
在这里,这将要求用户在运行程序时拥有管理员权限。注意:您可能希望以管理员身份重新启动IDE,以防每次

时都要求您以管理员身份启动调试