【发布时间】:2016-12-16 21:29:36
【问题描述】:
我正在用 C++ 开发一个应用程序,该应用程序需要尽可能可移植,并且能够在没有提升权限的情况下运行,以便普通用户可以运行它。 但我不确定如何检查它,因为在我的系统中它运行时没有像 UAC 这样的弹出窗口或要求特权。有没有办法检查应用程序所需的权限?
【问题讨论】:
标签: c++ windows elevated-privileges
我正在用 C++ 开发一个应用程序,该应用程序需要尽可能可移植,并且能够在没有提升权限的情况下运行,以便普通用户可以运行它。 但我不确定如何检查它,因为在我的系统中它运行时没有像 UAC 这样的弹出窗口或要求特权。有没有办法检查应用程序所需的权限?
【问题讨论】:
标签: c++ windows elevated-privileges
应用程序可以通过两种方式使窗口显示 UAC 提示以获取更高的权限:
启发式
Windows 包含heuristic-based detection 机制,该机制尝试检测您的应用程序是否应归类为“安装程序”,因此是否需要提升权限。这是自动完成的,如果它有误报,可能会导致问题,这会导致您的程序需要提升的权限。
显式
如果您不想依靠自动检测系统来正确分类您的应用程序,您可以通过修改应用程序的manifest 来明确说明您的应用程序需要什么高度级别。
asInvoker 不请求其他权限。此级别不需要额外的信任提示。
如果您想保证您的应用程序不会被错误分类,则应在您的案例中使用此方法。
【讨论】:
如果您不会在应用清单中明确标记它,则它不需要提升权限,但是您需要确保所有功能都能正常工作。
【讨论】: