按键精灵把变量赋值输入内容怎么把坐标转换变量

本帖最后由 流星无名 于 20:48 编辑

学习按键精灵前台已经有一段时间了,现在开始从前台转学后台。在论坛上爬了很多贴,发现要不是说的太高深,就是语不完整的,或者直接发一段命令,说直接照这样就行,看得我一头雾水,知其然不知其所以然的。所以特意开了这张贴,以便有共同兴趣的童鞋一起学习和讨论。也请高手们有空能进来指点一二,在这里本人先表示感谢哈!

我们所说的后台,就是你想操作的窗口C无论在窗口A和B后面,还是最小化后,脚本还是能继续在窗口C自动帮你执行你所编写的操作,如移动鼠标、点击、找色找图等等,但是不是所有的游戏都支持后台(能不能支持请自行去测试哦).而要在后台运行脚本,你必须在分三步走,一手抓!

(一手抓就是用按键精灵抓抓到的屏幕坐标,假设是x坐标是387,y坐标是265)。(代码因插件的不同而异,我只举例我常用的代码):

第一步:获取你想操作的窗口C的句柄。代码:


第二步:把屏幕坐标转成你想操作的窗口C的坐标,

第三步:编写你想运行的操作,如在屏幕的x坐标387,y坐标265处点击一下左键,那么,转换后窗口C的X坐标就是387-Ux, y坐标就是265-Uy


下面我们一条一条的来分析代码:
}

前台坐标与相对应的后台坐标的关联

各位大大在切换前后台命令的时候,有没有遇到坐标切换呢~
有没有发现前后台的命令,对同一个窗体内容,居然坐标不同!!
今天~院刊就跟大家普及下前台坐标与相对应的后台坐标知识~


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

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


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


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


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

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


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


如何获得客户区前台的x,y坐标呢?


我们使用按键精灵自带的窗体插件命令:GetWindowRect来获取。

得到窗口句柄的边框大小(包括标题栏)
参数1 整数型,窗口句柄
字符串型,边框大小(包括标题栏)

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

  1. //下面这句是得到窗口句柄的边框大小(包括标题栏)
  2. 将你所要获取的窗口句柄填入括号内就可以啦~

范例举例:举个萌萌哒的例子:向记事本特定位置输入文字。
例如我要往“hello”和“按键精灵”中间插入文字:

每次打开记事本的位置,有可能会有变化。而我们又不能每次都要去获取它的坐标再改脚本,这样太费力了。所以呢,只要锁定了记事本,知道了目标在记事本中的相对位置就可以操作啦。 同理,寻找游戏里的物品目标,前台不稳定。后台命令也是基于相对坐标的。

1. 先找到目标窗体的左上角坐标(通过窗体插件命令:GetWindowRect来获取)

2. 再找到目标窗体内,“hello”和“按键精灵”中间的坐标(为了方便,我们用抓抓获取。在游戏中,可以通过找图找色来获取前台坐标)


3. 算出相对坐标,后台命令鼠标点击(后台x坐标=客户区前台x坐标-客户区左上角前台x坐标)


(后台y坐标=客户区前台y坐标-客户区左上角前台y坐标)
(后台命令我们用按键自带的后台插件Bkgnd)
  1. //下面这句是得到窗口句柄的边框大小(包括标题栏)
  2. //下面这句用于分割字符串,将横坐标和纵坐标分成两个字符串


知识拓展:后台插件Bkgnd

向后台窗口句柄发送一个鼠标移动到坐标处 (注意:只支持部分窗口,以实际测试为准。)
参数1 整数型,窗口句柄
参数2 整数型,窗口X坐标
参数3 整数型,窗口Y坐标
向后台窗口句柄送一个鼠标左键单击 (注意:只支持部分窗口,以实际测试为准。)
参数1 整数型,窗口句柄
参数2 整数型,窗口X坐标
参数3 整数型,窗口Y坐标


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

本文由按键学院提供技术支持

}

我要回帖

更多关于 按键精灵把变量赋值输入内容 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信