1

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

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

谁能解释我如何使用简单且有据可查的 .NET 代码解决我的问题,而不是 Win API?

4

2 回答 2

0

我知道这与您的“但不是 Win API?”不匹配,但实际上,使用 P/Invoke 和 Win32 API 是要走的路。

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

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

于 2013-06-21T12:16:18.033 回答
0

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

于 2013-06-21T12:50:56.257 回答