我正在做一个小工具来枚举显示并选择与1920x1080相关的模式。我已经向我的用户发布了我的工具,这要归功于其中包含的遥测工具,我收到了很多报告,似乎我的EnumDisplaySettings工具对我的一些用户来说并不适用:
示例1:
EnumDisplaySettings :
70 1680 1050
EnumDisplaySettings :
71 2715 1527
Win7 - 显卡:NVIDIA GeForce GTX 960 CPU:Intel(R)Core(TM)i5-4590 CPU @ 3.30GHz
示例2:
EnumDisplaySettings :
64 1768 992
EnumDisplaySettings :
65 2715 1527
Win7 - 显卡:NVIDIA GeForce GTX 1060 6GB CPU:Intel(R)Core(TM)i5-3350P CPU @ 3.10GHz
您可以看到其他" report_error_x.txt"在这里:http://www.gaza-tools.com/koh/
我的代码在这里: https://github.com/Gazatus/KoH_Ultimate_Edition/blob/master/HD%20-%20Scripts/patch1920.py
简化代码:
mode = 0
smode = win32api.EnumDisplaySettings(None, mode) #first display mode infos
if smode.PelsWidth == 1920 and smode.PelsHeight == 1080:
succes = 1
else:
mode += 1 #increment mode and return to top
提前致谢!
答案 0 :(得分:0)
原因是您的流程受DPI virtualization的约束。您可以在清单中添加DPI认知设置,也可以在启动时致电SetProcessDPIAware
或SetProcessDPIAwareness
。