What is causing desktop shield icon overlay on *SOME* desktops

只谈情不闲聊 提交于 2019-12-10 15:54:48

问题


I have a C++ Builder/Delphi application. It has the following manifest embedded as a resource:

<?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>

The software does not utilize registry HKLM - only HKCU, and it reads/writes to %LocalAppData%. It does not require administrative privileges.

The requestedExecutionLevel is set to asInvoker as seen from above XML manifest so it should not show shield icon.

On some desktops the shield icon does not appear and on some it does - other programs do not show shield icon on the same desktop. What is possibly causing shield icon (and the annoying UAC prompt) for my application?

On all systems - the user type is Administrator and UAC is set to default level (on Windows 7 and 8) - so I really see no cause of shield to be shown only on some and not on all desktops.

What is different on these systems where the shield icon appears compared to the ones where shield icon is not present?


回答1:


The executable file has compatibility options set to force the application to execute as administrator.



来源:https://stackoverflow.com/questions/31391978/what-is-causing-desktop-shield-icon-overlay-on-some-desktops

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!