1.pywinauto的issue
使用pywinauto时TreeView组件的item的click()方法点击坐标有时会出错,原因和windowsDPI设置有关。
2.WindowsDPI设置的参考文档
WIN10下系统缩放比例(DPI)的魔幻设置 (博文给出了两种计算DPI的方法,但是相关的论述是不准确的。)
3.结论
一个应用程序是否支持dpiAware(是否添加 dpiAware flag 或者 调用 setProcessDPIAware(ness) 相关接口),是否使用了DWM虚拟化会导致通过API获取UI组件坐标的方式不同,
有时候拿到的是缩放前的坐标,有时候拿到的是缩放后的坐标,
通过不同的应用程序不同的系统设置进行试验,才能找到正确的获取坐标的方法。