如何在Windows 7上禁用高dpi支持?

时间:2019-01-21 11:24:20

标签: delphi manifest delphi-10.2-tokyo highdpi

我有一个较旧的应用程序,要在Windows 7上使用DPI虚拟化(也称为模糊表格缩放)。为了在示例项目中尝试此操作,我执行了以下操作:

  • 在Windows 7计算机上启用125%文本显示
  • 禁用该项目的任何清单
  • Monitor.PixelsPerInch的结果读取120

我尝试了一些操作,但是在这里无法获得96 dpi的结果:

  • 在内部或外部提供的清单中使用<dpiAware>false</dpiAware>
  • 更改了应用程序兼容性设置
  • 更改了Windows主题

我还认为SetProcessDPIAwareVCL中被称为“某处”。我发现System.win.HighDpi的初始化块中包含SetProcessDPIAware,但是我的最小样本中不包含此单元。

示例清单(设置dpiAware似乎被忽略了):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
    </requestedPrivileges>
  </security>
 </trustInfo>
    <application xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <windowsSettings> 
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">False</dpiAware> 
    </windowsSettings> 
  </application> 
</assembly>

0 个答案:

没有答案