能否通过WMI获取文本缩放比例与显示器相关属性?
能否通过WMI获取文本缩放比例与显示器相关属性?
嘿,你关心的这些显示相关信息——文本缩放、屏幕分辨率、多显示器配置/布局——其实确实可以通过WMI获取到,不过你一开始找的Win32_DesktopMonitor确实不太好用,这个类比较老旧,适配现代显示设备的能力很差,很多关键信息它都拿不到。
给你说说具体怎么获取这些属性:
- 文本缩放(DPI缩放):可以借助
Win32_Desktop类的LogPixels属性,这个值对应系统的DPI缩放比例——比如96代表100%缩放,120代表125%,144代表150%,以此类推。另外在Windows 10及以上版本,Win32_DisplayConfiguration类也能提供更精准的缩放相关参数。 - 屏幕分辨率:推荐用
Win32_VideoController类,它的CurrentHorizontalResolution和CurrentVerticalResolution属性能直接返回当前显示器的分辨率;如果要查看所有支持的分辨率选项,Win32_DisplaySettings类会是更好的选择。 - 多显示器配置/布局:可以结合
Win32_DisplayMonitor(注意是DisplayMonitor,不是你之前用的DesktopMonitor)和Win32_DisplayConfiguration来获取。Win32_DisplayMonitor能识别每个连接的显示器,而Win32_DisplayConfiguration里的PositionX、PositionY等属性可以帮你确定多屏的布局位置。
至于你提到的Win32_DesktopMonitor,它是针对早期CRT显示器设计的类,在现在的液晶显示器、多屏环境下,要么返回的信息不全,要么数据不准确,所以不太适合用来获取现代显示系统的属性。
备注:内容来源于stack exchange,提问作者Andrew Truckle
相关产品推荐
相关产品推荐

