我们有一个 x86 Win32 桌面应用程序。当安装程序由标准(非管理员)用户运行时,我们会避免提升和/或显示 UAC 提示并在下安装C:\Users\username\AppData\Roaming\...
而不是常见的Program Files
目录。
在 Windows 10 上,当我们的卸载程序从以下位置启动时Control Panel -> Programs -> Programs and Features
,不显示 UAC 提示,并且卸载程序在不提升的情况下运行。这是期望的行为。当从以下位置启动相同的卸载程序时Start -> Settings -> System -> Apps & features
,出现UAC提示。
(在 Opera 浏览器安装程序/卸载程序中可以看到相同的行为。我测试了 v35.0.2066.37。)
为什么相同的卸载程序在从以下位置启动时表现不同Apps & features
versus Programs and Features
?
从应用程序和功能启动卸载程序时如何避免UAC提示?
我们的卸载程序的清单包括:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" />
</requestedPrivileges>
</security>
</trustInfo>
我尝试改变requestedExecutionLevel
,并且还尝试删除trustInfo
完全如此,但无论哪种方式,行为都没有改变。
在 Windows 10 版本 1511 内部版本 10586.104 上进行测试。
Edit:只是为了澄清一下,我试图处理的情况是用户拥有标准帐户并且不知道管理员帐户的密码。如果他们在尝试卸载时看到 UAC 提示,他们别无选择,只能取消它,并且我们的卸载程序不会运行。
据我所知,这是“应用程序和功能”中的一个错误。 WiX 人有关闭了这个问题 https://github.com/wixtoolset/issues/issues/5357作为 Windows 错误,我认为他们已经通知了正确的人@ Microsoft。不过,该行为在 Insider build 15042 中仍然相同,因此可能不会在创作者更新时及时得到修复。
如果标准用户无法提升,则无法使用任何解决方法。
如果它们可以提升,那么您可以使用重新生成解决方法 https://web.archive.org/web/20170104213424/http://brandonlive.com/2008/04/27/getting-the-shell-to-run-an-application-for-you-part-2-how/在评论中发布或手动加载用户配置文件并调用RegOverridePredefKey
但它们都是丑陋的黑客(恕我直言)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)