.exe 文件中 Windows UAC Shield/Buckler 附加物的机制

.exe 文件中 Windows UAC Shield/Buckler 附加物的机制

我写了一个简单的程序。

最近我发现,当给它一个包含update其子字符串(不区分大小写)的名称时,该文件在 Windows 资源管理器中会自动获得 Windows 盾牌/小盾。

下图中,除文件名不同外,所有文件均相同:

在此处输入图片描述

UAC Shield/Buckler Appendage Mechanism我想知道这是否是因为Windows 资源管理器及其后端部分存在。

欢迎提出任何建议和线索。

答案1

添加清单文件是解决方案。

由于 UAC 的安装程序检测技术,您的 32 位可执行文件上会显示一个 UAC 盾牌图标,该图标requestedExecutionLevel在清单中没有,但文件名中包含“install”、“setup”、“update”等关键字。有了 UAC 盾牌图标,如果我们启动可执行文件,就会弹出 UAC 提升对话框。

来源

清单应包含requestedExecutionLevel。以下是部分清单文件的示例:

 <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"/>
        </requestedPrivileges>
    </security>
  </trustInfo>

这里了解更多信息。

相关内容