精易论坛

标题: 求助系统缩放取色问题 [打印本页]

作者: jylt3816    时间: 2025-4-5 21:35
标题: 求助系统缩放取色问题
在使用精益模块中窗口_取坐标处颜色时遇到了这样一个问题,,,,我要取一个窗口中某个坐标的颜色(假如是100,100),,,,,,我是高分辨率屏幕笔记本,所以使用电脑时我会在系统里设置200%的缩放,问题就出现在这里,,,,,,,当我的系统未设置缩放也就是100%显示时,,,,我取到的颜色是正常的取到的是窗口内坐标100,100的颜色,而一旦设置了缩放,无论是125%还是200%取色就开始出问题,取色就不再取窗口内的颜色了,他直接取屏幕上100,100坐标的颜色,(命令的参数里面我有输入窗口句柄)。求助 这到底时啥原因,或者有没有什么好的解决办法,和相对坐标绝对坐标可能无关,因为缩放之后它单纯的就是取屏幕上的颜色了(不知道图片看不看的清,取得是同一个坐标,但在两种缩放比例下取得颜色不一样,我这个窗口的尺寸是600*600,取的坐标是528,503)

作者: q981204899    时间: 2025-4-5 21:41
.版本 2

局_x = 到整数 (局_x ÷ 局_DPI × 100)
局_y = 到整数 (局_y ÷ 局_DPI × 100)
ret = 参_大漠.MoveTo (局_x, 局_y)
自己计算一下就行了
作者: jylt3816    时间: 2025-4-5 21:44
q981204899 发表于 2025-4-5 21:41
.版本 2

局_x = 到整数 (局_x ÷ 局_DPI × 100)

已经试过了,没有用。。。。。。。
作者: q981204899    时间: 2025-4-5 21:47
先在dpi100的情况下找点 然后再计算 懂吗?
作者: jylt3816    时间: 2025-4-5 21:54
q981204899 发表于 2025-4-5 21:47
先在dpi100的情况下找点 然后再计算 懂吗?

不好意思我是新手 你说的我不太理解,但是我试过了缩放后把坐标乘以相应的缩放倍数仍旧取不到正确的颜色,我不知道我有没有表述清楚我的问题,无缩放时我的窗口无论移动到哪里始终都能取到窗口内相应坐标的颜色,而缩放后,无论窗口在哪里,始终取的都是屏幕上坐标的颜色
作者: 浅笑c    时间: 2025-4-6 12:34
dpi缩放后,尺寸都不一样了,它有有效像素的问题,比如一像素,在125和150之间。有的软件是取整有的软件是进位,有的软件是保留小数。大概偏差在两像素左右,如果是在两个像素内的误差,其实计算dpi就不会有问题(值=值/96x当前dpi)
作者: 嘿沙漠    时间: 2025-4-10 12:56
我也用大漠写过项目,我是在不同缩放下都截图了,取一下当前的缩放比,按下面操作后就可以兼容多缩放比的屏幕了,貌似通过dip来计算新的坐标好像并不是精准的。

给出一个我的解决方案:
在你编译后的程序点击右键→兼容性→更改高PDI设置,勾选 替代高DPI缩放行为,缩放执行的下拉列表勾选应用程序。




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4