【按键精灵】三分钟教你实现自动解决各种验证码
金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想制作脚本和学习按键精灵的朋友可以添加按键精灵学习交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.
前期准备
要使用插件首先得先去石像官网注册账户并且下载插件
注册账户:http://www.sxdama.com/SignUp.aspx
注册账号如果是脚本作者身份还需要填写银行卡号和支付宝账号之类的信息,用来给作者返利的(你懂得~~)
插件下载:http://www.sxdama.com/other/download.aspx
插件下载这里有两个选择,选择按键精灵插件下载就好了。
COM组件是提供给其他的语言使用的插件,这里就不多做介绍了。
这些准备完毕后就OK了,接下来就开始在脚本代码中接入插件并使用
接入插件
在直接列出代码前先理清楚使用这个插件的流程
我们之后根据这个流程,可以把一些独立的步骤封装成函数,在使用的时候去调用这个函数就可以了
1、释放、注册插件
//用户插件编号和插件密码可以在石像官网后台查询到Function 注册(用户插件编号, 用户插件密码)//需要先把石像的RemoteAnswer.dll这个插件添加到脚本附件里PutAttachment ".\plugin", "RemoteAnswer.dll" '释放答题插件注册码 = GetEnvironmentVar("MMRegCode") '获取小精灵的注册码作者插件编号 = "" '这里可以填写上作者的插件编号,用户作者返利,也可不填Call RemoteAnswer.InitialiseUserData(用户插件编号, "", 注册码, 用户插件密码, 作者插件编号)End Function复制代码
2、截取验证码图片保存 ,通常的做法是使用多线程,在游戏中实时的检测是否出现验证码,出现的话就开始截图
截取静态的图片
Function 静态截图Call RemoteAnswer.PrintScreen(0, 0, 100, 200, "C:\图片.bmp") '截取屏幕上指定范围图片End Function复制代码
部分的游戏验证码是动态的,比如说大唐无双,需要截取动态的gif图片
Function 动态截图Call RemoteAnswer.CreateGif(0, 0, 200, 200,300,3, "C:\图片.gif") '隔300毫秒截图截取一张,共截图3张,合并生成动态的GIF图片End Function复制代码
3、发送验证码到代答平台
发送验证图片的时候需要知道这个验证码的类型编号,可以在这里查询http://www.sxdama.com/other/genre.aspx
Function 发送验证(图片路径, 图片格式, 类型编号,超时时间)发送验证 = "" '函数开头赋值空值,表示未处理Dim 题ID, 答题开始时间, Answer '定义变量//发送图片路径,图片格式,类型编号的题目信息,并返回题目ID。题目ID = Plugin.RemoteAnswer.SendImage(图片路径, 图片格式, 类型编号)答题开始时间 = now '记录下时间DoAnswer = Plugin.RemoteAnswer.QueryAnswer(题目ID)If Answer = "等待答案" ThenTracePrint "等待处理中……" & Int(DateDiff("s", 答题开始时间, now))ElseIf InStr(Answer, "验证错误") > 0 Then错误代码 = Split(Answer, ":")(1) '返回值格式如: 验证错误:101 使用Split函数获取101这个值。TracePrint "验证错误:" & 错误代码 '这里可以把错误代码记录一个地方,以便提交客服人员咨询。ElseIf Answer = "无法识别" ThenTracePrint "图像异常无法处理,需要重新发题目"ElseTracePrint "成功得到答案"发送验证 = Answer '答案赋值End IfExit Do '离开Do循环End IfDelay 500 '循环语句中适当的延时给予CPU响应时间Loop Until DateDiff("s", 答题开始时间, now) > 超时时间 '这里计算等待时间,超过120秒,则离开循环End Function复制代码
4、根据返回的验证码信息处理游戏中的验证码(很多童鞋也是在这一步不知道该如何处理)
一般常见的验证码分为三类:文字输入、坐标点击、选择题
如何能确定验证码答案返回的类型呢?
石像平台已经给了我们很好的解决方案,他有个测试识别的功能。登录石像官网的用户中心后在左侧可以看到
点击选择选择文件按钮,上传一张游戏验证码的图片,然后点击提交按钮,等待一会就能看到识别的结果了。
文字输入
这个类型的验证码最好处理,石像平台返回的答案就直接是这个文字,把获取到的文字输入到这个验证码输入框中即可
坐标点击
这个类型的验证码石像返回的是坐标值,如果有多个坐标的话会用 竖线 “|” 隔开。例如 :68,94|199,93
在处理的时候只要把每个坐标点分割开,然后分别提取出来使用即可(一般都是需要在坐标上进行点击的操作)
Function 处理验证(答案)坐标 = split(答案, "|")'先把每个坐标分割开,如果返回的是单坐标的话,可以直接省略这一步For i = 0 To UBound(坐标)//把每个坐标点再次分割成x和y坐标x = split(坐标, ",")(0)坐标y = split(坐标, ",")(1)//移动到坐标上点击。MoveTo 坐标x, 坐标yLeftClick 1Delay 200NextEnd Function复制代码
注意:石像返回的坐标是以图片左上角为起点的坐标,实际的应用中童鞋们还需要计算出相对的坐标
选择题
这种类型石像返回的是答案的序号,例如返回1就表示选择第一个答案,我们可以根据返回的数字进行相应位置的点击
Function 处理验证(答案)//可以根据返回的答案去选择点击对应的坐标Select Case 答案Case 1MoveTo x, yLeftClick 1Case 2MoveTo x1, y1LeftClick 1Case 3MoveTo x2, y2LeftClick 1Case 4MoveTo x3, y3LeftClick 1End SelectEnd Function【按键精灵教程】按键精灵代码常见错误
金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想制作脚本和学习按键精灵的朋友可以添加按键精灵学习交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.
1:定义变量时直接赋值 [backcolor=rgb(247, 247, 247)]
报错提示:没有找到合法的符号
//(错误代码0)没有找到合法的符号Dim a = 1复制代码
[backcolor=rgb(247, 247, 247)]
正确代码:定义变量时不能直接赋值哦~
Dim aa = 1复制代码
[backcolor=rgb(247, 247, 247)]
2:循环语句未设置循环次数
[backcolor=rgb(247, 247, 247)]报错提示:没有找到合法的符号
//第0行:无法计算取值。错误附加码=775:0For '(错误码0)没有找到合法的符号。MessageBox aNext复制代码
正确代码:循环语句,需要在for循环后面,加上循环次数哦~不然电脑那么笨……
For 5MessageBox aNext复制代码
3:语句书写不全
[backcolor=rgb(247, 247, 247)]报错提示:无法计算取值。错误附加码=775:0
//语句书写不全For i = 0 To 10 stepNext复制代码
正确代码:循环语句,在步径step后,需要指定具体的数值:如step 2 ,每次循环结束的时候变量+2;step 1,每次循环结束变量+1。
For i = 0 To 10 step 1 Next复制代码
4:未设置循环条件
[backcolor=rgb(247, 247, 247)]报错提示:[backcolor=rgb(255, 255, 255)]无法计算取值。错误附加码=775:0
//语法错误:脚本 11-12 ,第21行,第7个字符:(错误码0)没有找到合法的符号。//语义错误:脚本 11-12 ,第0行:无法计算取值。错误附加码=775:0While Wend复制代码
正确代码:亲,没有定义变量,也没有设置while的循环条件哦(while后面加一个参数:循环条件)
Dim aa = 1While a = 1Wend复制代码
5:变量名与子程序、子函数重名
[backcolor=rgb(247, 247, 247)]报错提示:名称有重复。错误附加码=3102:0
//语义错误:脚本 11-12 ,第60行:名称有重复。错误附加码=3102:0Dim 找字Sub 找字()End Sub复制代码
正确代码:定义的变量名称,不能与已有的子程序或者子函数重名哦~不然按键无法判断你想调用的是谁~
6:取数组元素下标超出范围
报错提示:下标越界: '[number: 11]'
//脚本 **.Q ,第**行:下标越界: '[number: 11]', Dim a(9)MessageBox a(11)复制代码
正确代码:在按键精灵中,定义数组时dim a(9),意味着数组a的最大下限是a(9)。而在调用的时候,记得千万不能超过定义的数组下限哦·~~
7:错误类型作大小比较
[backcolor=rgb(247, 247, 247)]报错提示:类型不匹配: 'A'
//脚本 11-12.Q ,第37行:类型不匹配: 'A', Dim aa = "a"If a > 1 Then MessageBox "a大于1"End If复制代码
正确代码:“If a > 1”,左边是字符串,右边是数值,无法进行比较~若需要将其作比较可先将字符串转换成ANSI代码后比较
Dim aa = "a"//得到"a"的ANSI字符代码后作大小比较If Asc(a) > 1 Then MessageBox "a大于1"End If复制代码
8:使用数组未先定义
[backcolor=rgb(247, 247, 247)]报错提示:类型不匹配:
//脚本 11-12.Q ,第52行:类型不匹配: 'MYARRAY', //脚本 11-12.Q ,第53行:类型不匹配: 'A', W1 = Clng(MyArray(0))w1=clng(a(1))复制代码
正确代码:又是一个调用变量的时候,没有好好定义的忧桑错误:
Dim MyArray(5)Dim a(5)W1 = Clng(MyArray(0))w1=clng(a(1))复制代码
9:延时命令不合理
Delay 6000//上面语句可用下面的限定次数循环语句取代,可解决按停止键停不下来的情况。For 60Delay 100Next复制代码
相关问答
按键精灵 怎么关闭 脚本 ?要关闭按键精灵脚本,你可以按下键盘上的"Ctrl+Alt+Delete"组合键,然后选择任务管理器。在任务管理器中,找到按键精灵的进程,右键点击并选择"结束任务&quo...
我用 按键精灵 做了个 脚本 ,需要绑定电脑(其他电脑不能用)和有...打开电脑,驱动精灵提醒有个松下的什么程序要安装,之后提醒我重启电脑,我照做了,打开以后电脑就成花屏了,字变的很花,不过还能看清楚。整个屏幕就像洗照片的底片...
按键精灵 设置了不按就一直运行为何中途会自己停-ZOL问答按键精灵命令插件里面有后台缺点是很多游戏用不了建议用大漠插件前台后台一...脚本需要能后台运行的。这方面有很多插件。一般用大漠插件的比较多。按键自...
按键精灵 写好程序点调试启动提示 脚本 已停止执行?因为你用gotoa中间如果一个都没有找到的话没有做任何动作,执行速度太快了,按键精灵的脚本的循环速度跟不上所以溢出报错了,一个只有remagotoa的脚本不...
安卓 脚本精灵 ,怎样把这些复制下来?我要到 按键精灵 里用。点了粘贴没反应啊,还有,这是可以通用的吧?当然不是,首先手机和电脑的语法就不一样再者就是这个是脚本精灵,不是按键精灵安卓版,不一样的,建议你去按键精灵官网下载安卓版,那个的语法和电脑版本的有些...
按键精灵 安卓版, 脚本 运行一段时间闪退,游戏还在运行?KeyDown"Space",1Delay5KeyUp"Space",1Delay5KeyPress"Z",1KeyUp"Z&qu...
安卓 按键精灵 自己写的 脚本 意外停止是怎么回事?1、在脚本编辑过程运行调试,看看是否通过。2、脚本会不误按了按键精灵的悬浮窗的停止按钮。3、是否进入了死循环。是否脚本设置为只执行一次,而特定停止的位...
如何让 按键精灵脚本 加速?『1』下拉列表框用于显示当前电脑上运行的程序的窗口标题『2』刷新按钮用于重新获取当前电脑上运行的程序的窗口标题『3』"滑块"用于调整速度,往左是减速,往右...
cf自动锁头的 按键精灵脚本 怎么做的,有哪位大神可以教教我?具体怎么做就不知道了,我就知道在CF运行时注入.dll什么的,把人物的头部换成其他的图片,然后用按键精灵的找图命令就可以自动锁定了。。。--------------------...
按键精灵 是外挂吗?按键精灵是一款模拟鼠标键盘动作的软件。通过制作脚本,可以让按键精灵代替双手,自动执行一系列鼠标键盘动作。按键精灵简单易用,不需要任何编程知识就可以作...