按键精灵坐标读取寻路 后台坐标相关

各位大大在切换前后台命令的时候有没有遇到坐标切换呢~

有没有发现前后台的命令,对同一个窗体内容居然坐标不同!!

今天~院刊就跟大家普及下前台坐标与相对应嘚后台坐标知识~

什么是前台坐标和后台坐标呢?

以屏幕左上角的坐标为起点(0,0)从而获取到的各个窗体的坐标,就是前台坐标

以窗口左上角为起点(0,0),从而获取到的这个窗体内的相对坐标就是后台坐标。


我们来举个栗子吧例如txt文本里的输入文字的起始点。


至此各位大大知道前后台坐标的联系了吧。一个是绝对坐标(前台)一个是相对坐标(后台)。

那么如何进行前后台坐标的切换呢

从上图里聪明机智的小伙伴们就会发现:如果知道了前台坐标,也知道了窗口左上角的值那么窗口客户区内的任意后台的坐标,不是都可以通过以下计算来获得了:

后台x坐标=客户区前台x坐标-客户区左上角前台x坐标

后台y坐标=客户区前台y坐标-客户区左上角前台y坐标

如何获得客户区前台的xy坐標呢?

我们使用按键精灵坐标读取寻路自带的窗体插件命令:GetWindowRect来获取

得到窗口句柄的边框大小(包括标题栏)

参数1 整数型,窗口句柄

字符串型边框大小(包括标题栏)

注:返回为:边框窗口左角X坐标 边框窗口左上角Y坐标 边框窗口右下角X坐标 边框窗口右下角Y坐标

//下面这句是得到窗ロ句柄的边框大小(包括标题栏)

将你所要获取的窗口句柄填入括号内就可以啦~

举个萌萌哒的例子:向记事本特定位置输入文字。

例如我要往“hello”和“按键精灵坐标读取寻路”中间插入文字:


每次打开记事本的位置有可能会有变化。而我们又不能每次都要去获取它的坐标再改腳本这样太费力了。所以呢只要锁定了记事本,知道了目标在记事本中的相对位置就可以操作啦

同理,寻找游戏里的物品目标前囼不稳定。后台命令也是基于相对坐标的

1. 先找到目标窗体的左上角坐标

(通过窗体插件命令:GetWindowRect来获取)

2. 再找到目标窗体内,“hello”和“按鍵精灵坐标读取寻路”中间的坐标

(为了方便我们用抓抓获取。在游戏中可以通过找图找色来获取前台坐标)


3. 算出相对坐标,后台命囹鼠标点击

(后台x坐标=客户区前台x坐标-客户区左上角前台x坐标)

(后台y坐标=客户区前台y坐标-客户区左上角前台y坐标)

(后台命令我们用按鍵自带的后台插件Bkgnd)

//下面这句是得到窗口句柄的边框大小(包括标题栏)

//下面这句用于分割字符串,将横坐标和纵坐标分成两个字符串

知识拓展:后台插件Bkgnd

向后台窗口句柄发送一个鼠标移动到坐标处 (注意:只支持部分窗口以实际测试为准。)

参数1 整数型窗口句柄

参数2 整数型,窗ロX坐标

参数3 整数型窗口Y坐标

向后台窗口句柄送一个鼠标左键单击 (注意:只支持部分窗口,以实际测试为准)

参数1 整数型,窗口句柄

参数2 整数型窗口X坐标

参数3 整数型,窗口Y坐标

当然当window主题更换的时候,可能用GetWindowRect 窗口边框大小 这个命令并不便捷大家也可以试试另一个window插件 GetClientRect 窗口客户区大小 。相同的思路更稳定更通用。

参考资料

 

随机推荐