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

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

我正在用 C++ 开发一个应用程序,它需要尽可能可移植并且能够 运行 无需提升权限,因此普通用户可以 运行 它。 但我不确定如何检查它,因为在我的系统中它 运行s 没有像 UAC 这样的弹出窗口或请求权限。有没有办法检查应用程序所需的权限?

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

应用程序如何使 windows 显示 UAC 提示以获取更高权限的方式有两种:

启发式

Windows 包含一个 heuristic-based detection 机制,该机制会尝试检测您的应用程序是否应归类为 "installer" 并因此需要提升权限。这是自动完成的,如果它有误报可能会导致问题,这会导致您的程序需要提升权限。

显式

如果您不想依赖自动检测系统来正确分类您的应用程序,您可以通过修改应用程序的 manifest.

来明确说明您的应用程序需要什么海拔级别

引用 this MSDN article:

asInvoker requesting no additional permissions. This level requires no additional trust prompts.

如果您想保证您的应用程序不会被错误分类,那么您应该在您的案例中使用它。