1个 pywinauto issue 和 Windows DPI 设置

探讨使用pywinauto库在高DPI环境下遇到的问题,特别是TreeView组件的click()方法坐标点击错误,分析原因与解决方案,涉及Windows DPI设置及应用程序DPI意识。

1.pywinauto的issue

使用pywinauto时TreeView组件的item的click()方法点击坐标有时会出错,原因和windowsDPI设置有关。

(参考issue37issue915)

 

2.WindowsDPI设置的参考文档

WIN10下系统缩放比例(DPI)的魔幻设置 (博文给出了两种计算DPI的方法,但是相关的论述是不准确的。)

windows高DPI支持

High DPI Settings in Windows

DPI与DIPs

DPIAwarenessMode

3.结论

一个应用程序是否支持dpiAware(是否添加 dpiAware flag 或者 调用 setProcessDPIAware(ness) 相关接口),是否使用了DWM虚拟化会导致通过API获取UI组件坐标的方式不同,

有时候拿到的是缩放前的坐标,有时候拿到的是缩放后的坐标,

通过不同的应用程序不同的系统设置进行试验,才能找到正确的获取坐标的方法。

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值