高程中清单中"highestAvailable"和"requireAdministrator"之间的区别?

2vi*_*on2 16 windows sdk winapi manifest

我在我的exe的清单中使用了"highestAvailable".但standard user and UAC ON它没有提升exe.

这是"最高可用"的行为吗?

我引用了这个MSDN链接,但不清楚"最高可用性"是否会提升exe.如果UAC开启,我的要求是提升exe.

我改为"requireAdministrator",我的exe在UAC ON的标准用户中升级了.

有人可以详细解释我这两个选项"highestAvailabe"和"requireAdministrator"的提升行为吗?

Dav*_*nan 23

highestAvailable如果当前用户是管理员,则会提升.这与您观察到的一致.当标准用户运行该过程时,不会显示UAC对话框,并且该过程将使用标准令牌运行.执行admin用户时,将显示UAC同意对话框,然后该进程将提升.

如果您的程序需要管理员权限才能运行,那么您需要使用requireAdministrator.当标准用户启动此类过程时,将显示" 肩上 UAC"对话框.这使用户有机会要求管理员提供其凭据.

只有highestAvailable在用户无法提升的情况下,如果您的程序能够以有限的功能运行,您才应该使用.这是由您的问题链接的MSDN主题中的混合模式的含义.