【发布时间】:2018-05-09 12:54:45
【问题描述】:
我在 python 3.6 中编写了一个应用程序,并想运行一个命令来查看显示器在 Windows 10 或 8 中的当前缩放比例 - 类似于以下返回屏幕分辨率的方式:
user32 = ctypes.windll.user32
screensize_l = user32.GetSystemMetrics(0)
screensize_w = user32.GetSystemMetrics(1)
我知道最简单的方法可能是让我的应用程序了解 DPI,但这样做会导致我的应用程序出现许多其他问题 - 所以我想避免使用此选项。
我查看了 Windows 文档并认为“GetDpiForMonitor”或“GetScaleFactorForMonitor”可能是我正在寻找的,但不知道如何实现这些命令。
我已经使用了 win32api 和 ctypes,所以任何依赖于其中任何一个的东西都可以 - 任何帮助都将不胜感激!
【问题讨论】:
-
我解决了我自己的问题,我煞费苦心地让我的程序根据 user32.GetSystemMetrics(0) 和 user32.GetSystemMetrics(1) 返回的屏幕大小重新缩放所有固定元素。我刚刚计算了一个与我最初预期的屏幕尺寸相关的调整因子。
标签: python windows winapi scale scaling