winapi - 以编程方式更改 Windows 每显示器缩放设置
问题描述
我需要实现一个自动化的 UI 测试,以在每个监视器 dpi 缩放更改时验证 DPI 感知应用程序的正确行为。
为了在应用程序中触发缩放动作,需要更改 Windows 设置 UI“显示”面板的“更改测试、应用程序和其他项目的大小”组合框中的值。
虽然这可以通过 Windows UIAutomation 来完成,但使用 API 来更改此设置会容易得多。
我无法弄清楚 SetDisplayConfig API 是如何做到这一点的,DISPLAYCONFIG_MODE_INFO 结构中的任何字段似乎都没有解决比例因子(100%、125%、150%,...)。
在此处查看屏幕截图:WindowsDisplaySettings
解决方案
如何使用 C# 以编程方式更改 Windows 10 显示缩放的副本。
来自Sahil Singh的很棒的解决方案提案在那里发布,演示了如何通过基于现有 Win32 方法DisplayConfigSetDeviceInfo的未记录 API 设置缩放值。
使用具有未记录结构的 DisplayConfigSetDeviceInfo 方法优于调整注册表值,因为它以自然的方式更新运行时系统,而不是注销/登录。
推荐阅读
- eclipse - 404 JSP 文件未找到动态 Web 模块导入项目
- python - Pandas 根据逗号将列拆分为列。但添加到现有列
- firebase - 使用 Flutter 创建用户集合后,如何在 Firestore 中检索文档 ID
- php - 使用 Visual Studio Code 搜索/替换 Blade 中的所有 PHP 变量
- android - 为什么我的活动中的 ActionBar 下方有一个白条?
- firebase - 比较元素 Flutter/FirebaseFirestore
- c - 进程退出并返回值 3221225725 - 快速排序最坏情况,malloc 崩溃,如何解决?- C
- excel - 如何通过VBA将所有参考单元格中的公式合并为一个公式?
- rust - 使用 cargo run 时跳过更新 crates.io 索引
- outlook - 每次外部各方响应创建单个对话的多个线程的邮件时,将添加 RE 的 Outlook 线程分组