在我的应用程序中(它仅支持Windows 7及更高版本),我想运行一个脚本,它将运行一些安装程序。在执行此操作之前,我需要检查从我的应用程序运行此脚本是否会为其提供足够的权限,以便它可以运行安装。否则,Windows拒绝执行此操作并显示一条消息,其中包含启动我的应用程序的用户需要管理员权限的说明。
根据这个question,解决我的问题的简单方法并不总是正常,但我也不喜欢其他建议(使用Win API)。
有人能解释我如何使用简单且记录良好的.NET代码来解决我的问题,而不是Win API吗?
答案 0 :(得分:0)
我知道这与你的“但不是Win API?”不匹配,但实际上,使用P / Invoke和Win32 API是可行的方法。
由于进程提升仅与Windows相关(因此,如果您希望将代码用于Mono,则没有意义),依赖Win32 API即可。
GetTokenInformation
是一个很好用的功能,只需确保将IntPtr
用于特定于平台的大小(甚至更好:SafeHandle
用于进程处理)所以它会正常工作在两台x86 / x64机器上。
答案 1 :(得分:0)
您可以先尝试询问管理员权限:
here,这将在运行程序时询问用户管理员权限。注意:您可能希望以管理员身份重新启动IDE,以防每次都要求您以管理员身份启动调试