是什么导致桌面盾牌图标覆盖在 *SOME* 桌面上
What is causing desktop shield icon overlay on *SOME* desktops
我有一个 C++ Builder/Delphi 应用程序。它具有以下作为资源嵌入的清单:
<?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,并且它 reads/writes 到 %LocalAppData%。它不需要管理权限。
requestedExecutionLevel 设置为 asInvoker,如上面 XML 清单所示,因此它不应显示盾牌图标。
在某些桌面上,盾牌图标不会出现,而在某些桌面上会出现 - 其他程序不会在同一桌面上显示盾牌图标。什么可能导致我的应用程序出现盾牌图标(和烦人的 UAC 提示)?
在所有系统上 - 用户类型是管理员并且 UAC 设置为默认级别(在 Windows 7 和 8 上) - 所以我真的看不出屏蔽只在某些系统上显示而不是在某些系统上显示的原因所有桌面。
与不显示盾牌图标的系统相比,这些出现盾牌图标的系统有何不同?
可执行文件设置了兼容性选项以强制应用程序以管理员身份执行。
我有一个 C++ Builder/Delphi 应用程序。它具有以下作为资源嵌入的清单:
<?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,并且它 reads/writes 到 %LocalAppData%。它不需要管理权限。
requestedExecutionLevel 设置为 asInvoker,如上面 XML 清单所示,因此它不应显示盾牌图标。
在某些桌面上,盾牌图标不会出现,而在某些桌面上会出现 - 其他程序不会在同一桌面上显示盾牌图标。什么可能导致我的应用程序出现盾牌图标(和烦人的 UAC 提示)?
在所有系统上 - 用户类型是管理员并且 UAC 设置为默认级别(在 Windows 7 和 8 上) - 所以我真的看不出屏蔽只在某些系统上显示而不是在某些系统上显示的原因所有桌面。
与不显示盾牌图标的系统相比,这些出现盾牌图标的系统有何不同?
可执行文件设置了兼容性选项以强制应用程序以管理员身份执行。