制作游戏辅助使用函数窗口处理验证码Word文件下载.docx
- 文档编号:21946255
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:10
- 大小:913.95KB
制作游戏辅助使用函数窗口处理验证码Word文件下载.docx
《制作游戏辅助使用函数窗口处理验证码Word文件下载.docx》由会员分享,可在线阅读,更多相关《制作游戏辅助使用函数窗口处理验证码Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
5、将inputbox返回值输入到游戏验证码输入框。
NO.1-获取游戏窗口句柄
♥
方法1:
使用
MousePoint鼠标指向窗口命令获取窗口句柄
//此方法适用于需要一个个绑定窗口的情况
hwnd=Plugin.Window.MousePoint()
方法2:
SearchEx遍历符合窗口命令获取窗口句柄
//此方法适用于一键绑定所有游戏窗口的情况
HwndEx=Plugin.Window.SearchEx("
GEMAINWINDOWCLASS"
"
轩辕传奇"
0)
参数1:
窗口符合的类名
参数2:
窗口符合的标题
参数3:
搜索方式(0:
模糊,1:
精确)
"
:
轩辕传奇游戏窗口的类名。
HwndEx中存放的是获取到的窗口句柄,如果有多个符合要求的句柄,句柄与句柄之间用"
|"
连接起来。
如果有多个窗口,我们需要通过split分割函数,把窗口句柄分割出来使用。
窗口句柄分割例子:
MyArray=Split(HwndEx,"
|"
)
IfUBound(MyArray)>
=0Then
i=0
ForUBound(MyArray)
//下面这句将字符串转换成数值
Msgbox"
第"
&
i+1&
"
个窗口句柄为:
Clng(MyArray(i))
i=i+1
Next
EndIf
如果SearchEx命令无法遍历到窗口。
我们还可以使用findex查找子窗口命令来查找。
//轩辕传奇游戏窗口的父窗口是桌面
Hwnd=Plugin.Window.findex(0,0,"
0)
父窗口句柄
子窗口句柄
匹配类名
参数4:
匹配标题
桌面句柄=0
轩辕传奇验证窗口
ps:
小编登录了游戏,等了很久也没出现验证码TT
所以用XX拿到的图片代替游戏窗口来讲解。
NO.2-判断验证窗口是否出现
获取
“验证码”字样图片的所在位置,
判断图片是否存在,存在则说明验证窗口出现。
方法:
以屏幕左上角的坐标为起点(0,0),从而获取到的游戏中“验证码”图片出现的位置。
步骤1:
计算出“验证码”图片左上角坐标、右下角坐标与游戏窗口左上角坐标的距离。
步骤2:
使用GetWindowRect命令获取游戏窗口左上角坐标。
sRect=Plugin.Window.GetClientRect(Hwnd)
MyArray=Split(sRect,"
)
步骤3:
窗口左上角坐标+图片左上角、右下角与窗口左上角的距离,获取图片的位置。
公式:
“验证码”图片左上角坐标(x,y)=(窗口左上角x坐标+257,窗口左上角y坐标+139)
“验证码”图片右下角坐标(x,y)=(窗口左上角x坐标+308,窗口左上角y坐
标+164)
步骤4:
使用findpic找图命令,查找"
验证码"
图片。
//"
图片需加载到附件中
FindPic窗口左上角x坐标+257,窗口左上角y坐标+139,窗口左上角x坐标+308,窗口左上角y坐标+164,"
Attachment:
\验证码.bmp"
0.9,intX,intY
IfintX>
0AndintY>
0Then
//
有些游戏的验证窗口出现的位置是随机的。
这种情况,只能将找图范围设置为窗口客户区大小去找图。
观察验证窗口的随机位置,没有被随机到的位置尽量排除在找图范围外,找图范围越小效率越高
NO.3-找验证码位置,截图保存验证码
▶
验证码位置计算与NO.2中找"
文字图片的计法是一样的。
使用图像插件中
PrintScreen命令截图保存验证码。
CallPlugin.Pic.PrintScreen(窗口左上角x坐标+310,窗口左上角y坐标+233,窗口左上角x坐标+430,窗口左上角y坐标+278,"
F:
NO.4-使用361度窗口插件,将保存的验证码显示到InputBox窗口上
我们用到的361度插件命令有三个:
CreatePictureRgn
(创建图像显示区域)
SetPictureRgnImage
(设置图像显示区域里显示的图像)
SetPictureRgnStyle
(设置图像显示区域样式)
显示验证码流程:
1、启动线程获取inputBox窗口句柄。
2、弹出InputBox窗口。
3、使用361度插件图像显示命令,在inputbox窗口上显示图像。
*
inputbox是一个阻断命令,弹出inputBox窗口之后,余下的代码要等关闭了inputbox窗口才会继续进行。
所以需要先启用线程等候着,等待inputbox窗口出现之后,获取inputbox窗口句柄。
在InputBox窗口上显示图片源码:
jieguo=弹出输入验证码框("
0,0,100,100)
Global图片路径,x1,y1,xx1,yy1//局部变量的值不支持线程传递,需要定义全局变量
Function弹出输入验证码框(图片地址,x,y,xx,yy)
图片路径=图片地址:
x1=x:
y1=y:
xx1=xx:
yy1=yy
线程ID=BeginThread(线程)//启动线程等待获取inputbox窗口句柄
弹出输入验证码框=InputBox("
请输入验证码"
StopThread线程ID
EndFunction
Sub线程()
do
Hwnd=Plugin.Window.Find("
#32770"
"
Loopwhile(Hwnd=0)//循环找InputBox窗口句柄,找到则退出循环,继续后续操作
Hwnd=Plugin.Window.FindEx(Hwnd,0,"
Static"
)//图片不能在输入框、命令按钮上显示,所以需要找类名为static的InputBox的子窗口,作为显示图片的对象
call在窗口上贴图(Hwnd,图片路径,x1,y1,xx1,yy1,3)//调用贴图的子程序
EndSub
Sub在窗口上贴图(句柄,图片地址,x,y,xx,yy,显示方式)
//显示方式为1是拉伸,显示方式为3是原大小
图像句柄=Plugin.WndEx6.CreatePictureRgn(句柄,x,y,xx,yy)//建立一个用于显示图片的区域
callPlugin.WndEx6.SetPictureRgnStyle(图像句柄,显示方式)//设置图片显示的方式
callPlugin.WndEx6.SetPictureRgnImage(图像句柄,图片地址)//设置显示图片区域里要显示的图片
Delay50
Loop
整体代码
hwnd=Plugin.Window.MousePoint()
sText=Plugin.Window.GetText(Hwnd)//获取窗口标题
IfsText="
轩辕传奇.jpg-Windows照片查看器"
Then//判断下是不是要操作的窗口
CallPlugin.Window.size(hwnd,800,600)
Else
MessageBox"
鼠标没有指向游戏窗口"
EndScript
sRect=Plugin.Window.GetClientRect(Hwnd)//获取窗口客户区大小
窗口左上角x坐标=Clng(MyArray(0)):
窗口左上角y坐标=Clng(MyArray
(1))//获取窗口左上角坐标
CallPlugin.Pic.PrintScreen(窗口左上角x坐标+310,窗口左上角y坐标+233,窗口左上角x坐标+430,窗口左上角y坐标+278,"
Global图片路径,x1,y1,xx1,yy1
线程ID=BeginThread(线程)
Sub线程()
Loopwhile(Hwnd=0)
Hwnd=Plugin.Window.FindEx(Hwnd,0,"
call在窗口上贴图(Hwnd,图片路径,x1,y1,xx1,yy1,2)
图像句柄=Plugin.WndEx6.CreatePictureRgn(句柄,x,y,xx,yy)
callPlugin.WndEx6.SetPictureRgnStyle(图像句柄,显示方式)
callPlugin.WndEx6.SetPictureRgnImage(图像句柄,图片地址)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 制作 游戏 辅助 使用 函数 窗口 处理 验证