首页 > 解决方案 > 以编程方式更改 Windows 每显示器缩放设置

问题描述

我需要实现一个自动化的 UI 测试,以在每个监视器 dpi 缩放更改时验证 DPI 感知应用程序的正确行为。

为了在应用程序中触发缩放动作,需要更改 Windows 设置 UI“显示”面板的“更改测试、应用程序和其他项目的大小”组合框中的值。

虽然这可以通过 Windows UIAutomation 来完成,但使用 API 来更改此设置会容易得多。

我无法弄清楚 SetDisplayConfig API 是如何做到这一点的,DISPLAYCONFIG_MODE_INFO 结构中的任何字段似乎都没有解决比例因子(100%、125%、150%,...)。

在此处查看屏幕截图:WindowsDisplaySettings

标签: winapiwindows-10-sdk

解决方案


如何使用 C# 以编程方式更改 Windows 10 显示缩放的副本。

来自Sahil Singh的很棒的解决方案提案在那里发布,演示了如何通过基于现有 Win32 方法DisplayConfigSetDeviceInfo的未记录 API 设置缩放值。

使用具有未记录结构的 DisplayConfigSetDeviceInfo 方法优于调整注册表值,因为它以自然的方式更新运行时系统,而不是注销/登录。


推荐阅读