Как отключить поддержку высоких точек на дюйм в Windows 7?

У меня есть старое приложение, для которого я хочу использовать виртуализацию DPI в Windows 7 (также известную как размытое масштабирование форм). Чтобы попробовать это в примере проекта, я сделал следующее:

  • включить отображение текста 125 % на компьютере с Windows 7
  • отключил любой манифест для этого проекта
  • читать Monitor.PixelsPerInch с результатом 120

Я пытался кое-что, но я не смог получить результат 96 точек на дюйм здесь:

  • используемый <dpiAware>false</dpiAware> во внутреннем или внешнем предоставленном манифесте
  • изменены настройки совместимости приложений
  • изменена тема windows

Я также думал, что SetProcessDPIAware называется где-то в VCL, я нашел 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 ответов

Другие вопросы по тегам