smooth 发表于 2022-1-5 22:28:18

[已解决]关于函数MouseCoordMode的用法

本帖最后由 smooth 于 2022-1-10 12:06 编辑

关于函数MouseCoordMode的用法,帮助里能搜到的资料就下面这个表,也没有例子。百度和论坛里也搜不到相关信息。一直搞不懂,什么叫坐标相对位置?
比如,我现在电脑是1920*1080,鼠标模拟点击(800,600)这个位置,如果我加入Opt("MouseCoordMode", 1)这句代码,是不是到了屏幕小一点的电脑,会自动调整为(700,500)(假设),这样不管什么电脑上用,点击位置就不会出错?
还有,啥叫客户区?
请大佬指点,谢谢!

MouseCoordMode设置用于鼠标函数的坐标参照,可以是绝对位置也可以是相对当前激活窗口的坐标位置.
0 = 相对激活窗口的坐标
1 = 屏幕的绝对位置(默认)
2 = 相对激活窗口客户区的坐标

itzyx 发表于 2022-1-6 00:20:59

0 = 相对坐标:以窗口的左上角为起点(0,0);
1 =绝对坐标:以电脑屏幕的左上角为起点(0,0);
客户区:一般指窗口 排除标题栏和边框所占用的区域,就是客户区。

如果鼠标模拟点击(800,600)这个位置,加入Opt("MouseCoordMode", 1),就相同大小的屏幕而言,当屏幕分辨率低时,在屏幕上显示的像素少,单个像素尺寸比较大。 到了屏幕小一点的电脑,如果分辨率相同,单个像素尺寸就小点,坐标是不会自动调整成(700,500)的。所以如果不考虑主题,DPI等的影响,点击的位置几乎是一样的。
这些知识,我也是在论坛上学习的,解释不到位,或者不对的地方,希望其他大佬可以补充。

smooth 发表于 2022-1-6 08:31:58

itzyx 发表于 2022-1-6 00:20
0 = 相对坐标:以窗口的左上角为起点(0,0);
1 =绝对坐标:以电脑屏幕的左上角为起点(0,0);
客户区 ...

谢谢!我的本意是,模拟鼠标点击,到了不同尺寸的显示器上,都能准确适用,所以想了解一下相对坐标的原理。看来相对坐标不是解决这个问题的。

afan 发表于 2022-1-6 11:15:37

smooth 发表于 2022-1-6 08:31
谢谢!我的本意是,模拟鼠标点击,到了不同尺寸的显示器上,都能准确适用,所以想了解一下相对坐标的原理 ...

加入Opt("MouseCoordMode", x) 是对于坐标操作最有效的设置,itzyx 已经解释得很清楚了,肯定也是解决你的模拟点击的问题。
编写一个大家都可重现你问题的代码,可以得到直接的帮助。
页: [1]
查看完整版本: [已解决]关于函数MouseCoordMode的用法