Windows 10 Creator的更新版中有最终用户的新选项。最终用户可以在兼容性选项卡上将EXE的属性更改为“覆盖高DPI缩放行为”并将其设置为系统(增强)。我测试了它,它适用于一些经典的win32应用程序。
我希望通过API调用或通过清单来执行此操作。没有相关信息。那可能吗? 从我得到的评论中,它想澄清这是一个新的CREATORS UPDATE FEATURE,我特别想知道如何通过清单或代码为覆盖功能设置“SYSTEM(ENHANCED)”选项。
答案 0 :(得分:2)
我在另一篇SO帖子中找到答案: Enhanced system DPI scaling with VS2017
正确的线索是研究新的GDI Scaling清单,该清单在Creator的更新中得到了极大的改进。这用于系统(增强)设置。
没有一个答案或评论接近。他们一直在提到旧文章。此外,有人标出了负面问题:(悲伤。
答案 1 :(得分:2)
DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED在windef.h中最新的Windows 10 SDK标头(截至撰写本文时为17134)中现已成为有效的DPI_AWARENESS_CONTEXT:
定义DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED((DPI_AWARENESS_CONTEXT)-5)
因此,如果希望避免在清单中执行此操作,则应调用IsValidDpiAwarenessContext和SetProcessDpiAwarenessContext以在运行时利用GDI缩放。
这确认gdiScaling与Per Monitor V2是互斥的。
答案 2 :(得分:0)
详情见this blog post:
<dpiAware>True/PM</dpiAware>
<dpiAwareness>PerMonitorV2, PerMonitor</dpiAwareness>
有关各种清单问题的详细信息,请参阅Manifest Madness