windows - 是什么导致桌面盾牌图标覆盖在 *SOME* 桌面上

标签 windows delphi manifest c++builder uac

我有一个 C++ Builder/Delphi 应用程序。它具有以下作为资源嵌入的 list :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity type="win32"
                    processorArchitecture="*"
                    version="1.0.0.0"
                    name="Manufacturer.Division.MyName" />
  <description>MyName</description>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32"
                        name="Microsoft.Windows.Common-Controls"
                        version="6.0.0.0"
                        processorArchitecture="*"
                        publicKeyToken="6595b64144ccf1df"
                        language="*" />
    </dependentAssembly>
  </dependency>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" /> <!-- Win Vista and Win Serv 2008    -->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" /> <!-- Win 7     and Win Serv 2008 R2 -->
      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" /> <!-- Win 8     and Win Serv 2012    -->
      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" /> <!-- Win 8.1   and Win Serv 2012 R2 -->
    </application>
  </compatibility>
  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True/PM</dpiAware>
    </windowsSettings>
  </application>
</assembly>

该软件不使用注册表 HKLM - 仅使用 HKCU,并且它读取/写入 %LocalAppData%。它不需要管理权限。

从上面的 XML list 中可以看出,requestedExecutionLevel 设置为 asInvoker,因此它不应显示盾牌图标。

在某些桌面上,盾牌图标不会出现,而在某些桌面上会出现 - 其他程序不会在同一桌面上显示盾牌图标。什么可能导致我的应用程序出现盾牌图标(以及烦人的 UAC 提示)?

在所有系统上 - 用户类型是管理员并且 UAC 设置为默认级别(在 Windows 7 和 8 上) - 所以我真的看不出盾牌只在一些而不是在所有桌面上显示的原因。

与不显示盾牌图标的系统相比,出现盾牌图标的系统有何不同?

最佳答案

可执行文件设置了兼容性选项以强制应用程序以管理员身份执行。

enter image description here

关于windows - 是什么导致桌面盾牌图标覆盖在 *SOME* 桌面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31391978/

相关文章:

java - 我在哪里可以找到我的电脑使用的 java 版本

java - 原子文件修改

delphi - 重新编译 RTL - 如果可能,那么如何?

windows - Windows 上的 Qt DLL 部署

windows - 无法加载 OpenGL 进程,只能从 Haskell 加载

python - 如何使用 Python 在 Windows 7 文件资源管理器中访问和更改 JPEG 图像的标签描述属性?

delphi - 项目构建配置的上下文菜单中的 "Make"和 "Build"有什么区别?

mysql - 使用 Delphi Xe2 和 MySQL 5.1,如何从查询中返回 UTF8 字符串?

OS X JREs 6 和 7 : any workaround? 之间的 Java applet 安全模型不兼容

java - 使用 java 7u45 启动已签名的小程序时出现的问题