本文主要是介绍实战:让脚本在任意分辨率通用!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
下面教大家如何做一个分辨率通用的脚本
相信大家都很需要这个教程吧
我就以按键精灵论坛为例子:我们来做个点击搜索并输入搜索内容
第一步:首先我们要获取窗口句柄
关于获取窗口句柄的这部分我之前已经写过这个帖子了
大家可以到右侧链接查看:
http://bbs.vrbrothers.com/viewthread.php?tid=203495
注意:以下部分需要完成第一步先
完成第一步差不多是这样、要注意指定窗口句柄那里一定要打钩
好了、接着我们继续下一步
第二步:定位起点坐标
这里我们要注意一个地方
定位起点的坐标、应该定位哪里
我们要选取一个每台电脑都显示一样的地方定位坐标
比如我们的按键精灵论坛
我们在红色圈圈那里定位起点
把鼠标移动要定位起点的定位右击
这个时候你会发现
抓抓的定位起点坐标x,y会出现数字
另外我们要记得起点坐标的颜色
色值:EFE1C1
这样我们就完成定位起点坐标了
第三步:加入坐标
我们获取需要点击的坐标
我们做的例子是:点击搜索并输入搜索内容
这是我们要获取搜索的坐标、以及搜索位置的坐标
把搜索的坐标加入点一:<我获取到的坐标是:567,75>
搜为位置坐标加入点二:<我获取到的坐标是:282,252>
第四步:编写代码<获取句柄以及起点坐标>
这个时候我们已经做好的准备工作开始编写代码了
首先大家把我这段代码复制到源码内
- hwnd= Plugin.Window.MousePoint()
- XY= Plugin.Bkgnd.FindColor(hwnd,0,0,1024,768,"EFE1C1")//要注意修改括号内的颜色值
- aa = split(XY, "|")
- x = aa(0)
- y = aa(1)
- If x =-1 Then
- MessageBox "定位起点失败"
- Else
- cx = x
- TracePrint x
- cy = y
- TracePrint y
- End If
复制代码
要记得修改色值、不然会出错
第五步:<编写坐标代码以及转换>
这是懒人写的代码
- Call Plugin.Bkgnd.LeftClick(Hwnd, 0, 0)
复制代码
小若建议用下面这个代码
- Call Plugin.Bkgnd.MoveTo(Hwnd, 0, 0)
- Delay 32
- Call Plugin.Bkgnd.LeftClick(Hwnd, 0, 0)
复制代码
也可以这样写
- Call Plugin.Bkgnd.MoveTo(Hwnd, 0, 0)
- Delay 32
- Call Plugin.Bkgnd.LeftDown(Hwnd, 0, 0)
- Delay 100
- Call Plugin.Bkgnd.LeftUp(Hwnd, 0, 0)
复制代码
具体看你个人喜欢
要记住修改坐标
大家看下定位后的坐标和不定位的坐标有什么不同
没定位之前
- Call Plugin.Bkgnd.MoveTo(Hwnd, 0, 0)
- Delay 32
- Call Plugin.Bkgnd.LeftClick(Hwnd, 0, 0)
复制代码
定位后
- Call Plugin.Bkgnd.MoveTo(Hwnd, 0+cx, 0+cy)
- Delay 32
- Call Plugin.Bkgnd.LeftClick(Hwnd, 0+cx, 0+cy)
复制代码
我们把我们之前获取到的坐标输入好
如小若刚才获取到的2个坐标
搜索的坐标点一:<我获取到的坐标是:567,75>
搜索位置坐标点二:<我获取到的坐标是:282,252>
代码如下
- Call Plugin.Bkgnd.MoveTo(Hwnd, 567+cx, 75+cy)
- Delay 32
- Call Plugin.Bkgnd.LeftClick(Hwnd, 567+cx, 75+cy)
- Delay 500
- Call Plugin.Bkgnd.MoveTo(Hwnd, 282+cx, 252+cy)
- Delay 32
- Call Plugin.Bkgnd.LeftClick(Hwnd, 282+cx, 252+cy)
复制代码
第六步:输入字符串信息到搜索栏内
代码如下
- Call Plugin.Bkgnd.SendString(Hwnd, "内容")
复制代码
当然你想自己修改也可以、代码如下
- UserVar Var1=0 "设置内容"
- Call Plugin.Bkgnd.SendString(Hwnd, Var1)
复制代码
这样我们就完成了分辨率通用的脚本
完成的代码是
- //自定义内容
- UserVar Var1=0 "设置内容"
- //获取句柄以及定位起点
- hwnd= Plugin.Window.MousePoint()
- XY= Plugin.Bkgnd.FindColor(hwnd,0,0,1024,768,"EFE1C1")
- aa = split(XY, "|")
- x = aa(0)
- y = aa(1)
- If x =-1 Then
- MessageBox "定位起点失败"
- Else
- cx = x
- TracePrint x
- cy = y
- TracePrint y
- End If
- //给予适当的延时
- Delay 500
- //操作
- Call Plugin.Bkgnd.MoveTo(Hwnd, 567+cx, 75+cy)
- Delay 32
- Call Plugin.Bkgnd.LeftClick(Hwnd, 567+cx, 75+cy)
- Delay 500
- Call Plugin.Bkgnd.MoveTo(Hwnd, 282+cx, 252+cy)
- Delay 32
- Call Plugin.Bkgnd.LeftClick(Hwnd, 282+cx, 252+cy)
- //输入字符串
- Call Plugin.Bkgnd.SendString(Hwnd, Var1)
复制代码
这篇关于实战:让脚本在任意分辨率通用!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!