我正在制作一个 .manifest 文件,所以 Win7 不会用 UAC 来打扰我,因为它是一个未签名的应用程序。(该应用程序很旧,不会升级)
我尝试了网上的几种方法,但都没有用
<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
我还研究过:
您知道如何制作 .manifest XML 文件以便未签名的应用程序在没有警告的情况下运行吗?
答案1
据我所知,在 Vista 中,任何没有清单的应用程序都不会被提升(但会被虚拟化)。但运行它不会调用安全桌面,除非您执行“以管理员身份运行”。
您给出的示例清单只会确保 Vista 知道您的应用支持 Vista。“作为调用者”表示您的应用不需要管理员权限。但直到您将其设置为“需要管理员”,它才会显示 UAC 提示。(我回答的是 Vista,因为我曾使用过它。我认为 Windows 7 也会有类似的行为)。
答案2
您在这里实际上是在问 UAC 中的漏洞。此类漏洞通常在被发现后由 Microsoft 修补...
在我看来,对这个旧的可执行文件进行数字签名是一个更持久的解决方案。
签名可以在任何现有的可执行文件上进行,并且不需要重新链接或重新编译,也不需要了解任何特殊信息。应用程序签名证书每年只需花费几百美元。