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

标签 c++ windows elevated-privileges

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

最佳答案

应用程序可以通过两种方式使 Windows 显示 UAC 提示以获取更高的权限:

启发式

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

显式

如果您不想依赖自动检测系统来正确分类您的应用程序,您可以通过修改应用程序的 manifest 来明确说明您的应用程序需要的海拔级别。 .

引用 this MSDN article :

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

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

关于c++ - 如何查看我的应用程序是否需要提升权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38874386/

相关文章:

c++ - 如何检索 QML 相机提要并发送到 C++ 后端

linux - suid 二进制提权

c++ - ‘断言’函数: weird behavior

c++ - 最大双宽度的 printf 格式说明符

c++ - cmake install(FILES ...) 似乎不起作用

C# Environment.GetDrives() 在管理员模式下无法正常工作

wix - 在 Wix 安装程序中以管理员模式在 customAction 中运行 ExeCommand

android - 跨平台日志宏在 Windows 上不起作用

c++ - 在 C++ 中访问 UNC 驱动器/远程网络驱动器

php - XDebug 未加载到 PHP(Vista、Apache 模块)中