如何查看应用程序是否需要提升权限?

How can I view whether my application requires elevated privileges or not?

本文关键字:权限 何查看 应用程序 是否      更新时间:2023-10-16

我正在用c++开发一个应用程序,它需要尽可能便携,并且能够在没有提升特权的情况下运行,以便普通用户可以运行它。但我不确定如何检查它,因为在我的系统中,它运行时没有像UAC这样的弹出窗口或要求特权。是否有一种方法可以检查应用程序所需的特权?

应用程序有两种方法可以使窗口显示UAC提示符以获得更高的权限:

启发式

Windows包含一个基于启发式的检测机制,它试图检测您的应用程序是否应该被归类为"安装程序",从而需要更高的权限。这是自动完成的,如果它有假警报,可能会导致问题,这会导致您的程序需要更高的权限。

明确

如果你不想依赖于自动检测系统来正确地对你的应用进行分类,你可以通过修改你的应用清单来显式地声明你的应用需要什么提升级别。

引用MSDN文章:

asInvoker没有请求额外的权限。此级别不需要额外的信任提示。

如果你想保证你的应用程序不会被错误地分类,你应该在你的情况下使用

如果你没有在应用程序清单中明确标记它,它应该不需要提升权限,但是你需要确保所有功能都能正常工作