您的位置首页百科知识

按键精灵技术教程:沙盘后台绑定游戏

按键精灵技术教程:沙盘后台绑定游戏

的有关信息介绍如下:

按键精灵技术教程:沙盘后台绑定游戏

在上一期的院刊中,我们说到了如何使用沙盘以及一些要注意的地方。现在,我们一起来看看,沙盘的后台绑定要怎么实现。

步骤2-查找窗口句柄

小编找了个“456游戏平台”作为今天的例子,实现大漠后台绑定沙盘后对游戏窗口进行点击的效果。

我们使用search命令来查找窗口句柄。

首先,我们需要获取游戏窗口的标题,用抓抓工具来获取。

search命令代码如下

HwndEx=Plugin.Window.Search("456游戏中心")

可能会有很多童鞋载在这里,认为hwndex就是当前窗口的句柄。实际上,search命令的返回值是字符串,hwndex中所存放的:句柄加上“|”这样的内容。例如,找到了两个符合窗口标题的窗口句柄,12345和45678那么hwndex中存放的就是:12345|45678|所以,我们得到这个返回值之后,还需要使用split函数分割。

代码如下:

HwndEx=Plugin.Window.Search("456游戏中心")

MyArray=Split(HwndEx,"|")

IfUBound(MyArray)>=0Then

i=0

ForUBound(MyArray)

TracePrintMyArray(i)

i=i+1

Next

EndIf

分割之后的句柄存放在数组MyArray中。

注意:search命令是模糊查找,也就是说,如果你要查找的是窗口标题符合"456游戏中心",那么,"456游戏中心123"也符合条件。

步骤3-绑定窗口

大漠里绑定模式那么多,我怎么知道要用哪种呢?这里小编分享一个大漠绑定测试工具。

大漠绑定测试工具使用:第一步:获取要测试的窗口句柄

第二步:选择绑定模式,点击绑定,查看返回值

如果返回值为1,则说明绑定模式可行。如果返回值是0,则说明绑定模式不可行。注意:绑定模式可行并不代表图色、键鼠、文本输入就一定可以。所以,绑定模式可行之后,我们还需要测试图色、键鼠、文本是否可以用:

第三步:测试图色、键鼠等都可行之后,点击“生成绑定代码”

这里需要注意下,生成的代码中:dm.ret=dm.BindWindowEx(hwnd,"dx2","windows3","windows","",0)dm.ret这个需要修改下,修改为dm_ret或者其它变量名。绑定模式确定之后,使用多线程多开的方式来操作点击窗口。

整体代码

callregister()

DimEnvhwnd

HwndEx=Plugin.Window.Search("456游戏中心")

MyArray=Split(HwndEx,"|")

IfUBound(MyArray)>=0Then

i=0

ForUBound(MyArray)

TracePrint"第"&i+1&"个窗口句柄为:"&MyArray(i)///提示信息

hwnd=MyArray(i)

i=i+1

BeginThread点击

Next

EndIf

Sub点击

Setdm=createobject("dm.dmsoft")

jubing=hwnd

dm_ret=dm.BindWindowEx(jubing,"dx2","windows3","windows","",0)

Ifdm_ret=1Then//判断是否绑定成功,成功则继续后续的动作

TracePrint"绑定成功"

dm.moveto99,281

dm.leftclick

TracePrint"点击牌类游戏"

dm.moveto99,307

dm.leftclick

TracePrint"点击欢乐五张"

dm.moveto118,335

dm.leftclick

TracePrint"点击中国电信"

dm.moveto140,306

dm.leftclick

TracePrint"双击地摊1"

EndIf

Endsub

Subregister()////////////注册大漠

Setws=createobject("Wscript.Shell")

ws.run"regsvr32atl.dll/s"

Setws=nothing

PutAttachment"G:\test","dm.dll"

PutAttachment".\Plugin","RegDll.dll"

callPlugin.RegDll.Reg("G:\test\dm.dll")

Setdm=createobject("dm.dmsoft")

ver=dm.ver()

Iflen(ver)=0Then

MessageBox"插件注册失败,检查系统是否禁用了vbs脚本权限"

EndScript

EndIf

EndSub

SubOnScriptExit()//解绑大漠

dm_ret=dm.UnBindWindow()

EndSub

要点分析:为什么在sub点击子程序里要写下面的这句代码呢?

Setdm=createobject("dm.dmsoft")

这句代码的作用是创建一个大漠对象。新的线程是不能延用主线程里所创建的大漠对象的,所以在这里需要重新创建一个大漠对象。