| 
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                     
                                        
                                     
                                    
                                        
                                        - 超级版主
 
                                        
                                        - 1228894
 
                                        - 27060
 
                                        - 25
 
                                        - 8236 朵
 
                                        - 36314 个
 
                                        - 4931 个
 
                                        - 421340
 
                                        - 2012-07-18
 
                                     
                                    
                                    
                                    
                                 | 
                                
                                    
                                        
                                            
                                                
                                                1#
                                                
                                            
                                        
                                        
                                            
                                                
                                                
                                                t
                                                T
                                             
                                            
                                            
                                            
                                                
                                                发表于 2022-02-23 15:55
                                            
                                                                                        
                                            | 
                                            
                                            
                                            |只看楼主
                                            
                                         
                                     
                                    
                                    
                
                
                
                
                    
                    
                    
                   
                    
                        
                        
                        说明:
 - 写给看得懂的人
  - 本源码为17年所写【已失效,仅工学习】,语法不够简练凑合看
  已知条件:
 
 - 滑动验证为2x2【图1】
  - 需按示意线路滑动【图2、图3虚线示意】
  - 滑动方向未知【图2、图3红色三角形】
  
 
    代码思路构思:
 
 - 每个点有三个滑动方向的可能性【图4、图5】
  - 应滑动验证示意会带红色三角形故取12个指定坐标用于判断路径【图6】
  
 
 
    代码一览: Import "ShanHai.lua"   //先下载山海插件,并放在插件目录 plugin 下 Dim 易码账号,易码密码,手机号,sid,token,wy,a,cs,验证码 易码账号 = "*" 易码密码 = "*" sid = "2555" //SID是项目ID,项目ID 请自行在官网查看 登录易码 '雷电1.8.6 360*640*240 Dim 账号密码,分割,账号,密码,开始时间,手机打码累计次数 //******************* Dim 点坐标X = Array(120, 275, 120, 275)'需要修改 Dim 点坐标Y=Array(375,375,525,525)'需要修改 Dim 是否相等,数量,数组X,数组Y,判断,最终,正,反 Dim 圆1X=Array(170,155,120)'需要修改 Dim 圆1Y=Array(375,410,425)'需要修改 Dim 圆2X=Array(220,235,270)'需要修改 Dim 圆2Y=Array(375,410,425)'需要修改 Dim 圆3X=Array(120,155,170)'需要修改 Dim 圆3Y=Array(475,490,525)'需要修改 Dim 圆4X=Array(270,235,220)'需要修改 Dim 圆4Y=Array(475,490,525)'需要修改 //****************************** Do     开始时间=ShanHai.GetUpTime()     Sys.ClearAppCache "com.huajiao"     RunApp "com.huajiao"     延迟 15     RunApp "com.huajiao",".main.MainActivity"     同步点击 324,597, "我的"     是否出现特殊页面 38, 489, "4755FE", "登录页面", true, 38, 489     判断指定点颜色 192, 273, "441EF1", "登录-新浪"     账号密码=读取一行()     分割 = Split(账号密码, "----")     账号 = 分割(0)     密码 = 分割(1)     点击并输入 104, 411, 账号, "输出账号"     点击并输入 104, 474, 密码, "输出密码"     同步点击 180, 550, "登录"     延迟 3     Do     If GetPixelColor(123, 374) = "888888" Then          TracePrint "出现验证码,准备过验证"         过验证码          Else          Exit Do     End If     Loop     是否出现特殊页面 257, 446, "0082FF", "确定", true, 257, 446     RunApp "com.huajiao",".user.bind.AccoutSafeActivity"'设置     延迟 2     If GetPixelColor(330, 205) = "703AFA" Then          手机打码累计次数=0         Do             If 同步点击(330, 205, "绑定") = True Then                  TracePrint "准备绑定手机"                 Call 获取手机号()                  点击并输入 153, 333, 手机号, "输出手机号"                 点击 225,399, "获取验证码"                 Call 获取验证码()                 点击 128,412,"验证码"                 点击并输入 128,412,验证码,"验证码"                 Call 拉黑释放验证码()                 同步点击 190, 512, "绑定"                 If GetPixelColor(190,441) = "703AFA" Then                      TracePrint "手机号用过,准备重新绑定"                             同步点击 190, 441, "我知道了"                     点击 28,76, "手机号用过----返回手机绑定页面"                 Else                      If 成功获取验证码 = True and GetPixelColor(330, 205) <> "703AFA" Then                          TracePrint "绑定成功"                         记录读取行数                          TracePrint "本次耗时"&ShanHai.GetUpTime()-开始时间&"秒~~~~~~~~~~~~~~~~~~~~~~~~~~"                         Exit Do                     End If                 End If             Else                  TracePrint "判断为网络问题,退出账号重启"                 Exit Do             End If         Loop     Else          TracePrint "无需绑定手机,准备进入下一个号"     End If Loop Sub 点击并输入(x, y, 输入内容, 提示)     TracePrint 提示&"----"&输入内容     Tap x, y     延迟 2     InputText         输入内容 End Sub Sub 判断指定点颜色(x, y, 颜色,提示)     Dim 没找到次数=0     Do         Dim 当前颜色= GetPixelColor(X, Y, 0)         TracePrint X&":"& Y&"当前颜色"&当前颜色         If 当前颜色 = 颜色 Then              TracePrint "符合"&提示             Exit Do         End If         没找到次数 = 没找到次数 + 1         TracePrint "没找到次数"&  没找到次数          If 没找到次数 = 25 Then              Exit Do         End If         延迟 1.5     Loop End Sub Function 是否出现特殊页面(x,y,颜色,提示,是否点击,点击X,点击Y)     If GetPixelColor(x,y)= 颜色 Then          TracePrint "出现特殊页面"&"----"&提示         是否出现特殊页面 = True         If 是否点击 = True Then              同步点击 点击X,点击Y,提示         End If     Else          TracePrint "继续下一步,未出现"&"----"&提示         是否出现特殊页面=False     End If End Function Function 同步点击(X, Y, 提示)     Dim kn=0     Dim 当前颜色= GetPixelColor(X, Y, 0)     Tap X, Y     Do         If GetPixelColor(X, Y, 0) <> 当前颜色 Then              TracePrint X&","& Y&"----"&提示&"----点击完毕,页面完成跳转"             延迟 2             Exit Function         Else              TracePrint "等待----"&提示&"----跳转中"             kn = kn + 1             If kn = 10 Then                  TracePrint "尝试纠正 再次点击"                 Tap X, Y                 同步点击=True             End If             If kn = 30 Then                  TracePrint "超时退出"                 同步点击=False                 Exit Function             End If         End If         延迟 1     Loop End Function Sub 点击(x, y, 提示)     TracePrint 提示     Tap x, y     延迟 1 End Sub Sub 延迟(秒)     Delay 秒*1000 End Sub Dim 微博帐号记录,j,Var1 Function 读取一行()     微博帐号记录 = File.ReadLines(GetTempDir()&"/微博帐号记录.txt")     If 微博帐号记录(0) = null Then          j = 0     Else          j = 微博帐号记录(0)     End If     TracePrint "本次读取第----"&(j+1)&"行"     Var1 = File.ReadLines(GetTempDir()&"/微博帐号.txt")     If Int(j) > Int(UBOUND(Var1)) Then          Do             TracePrint "已经是最后一行了"             Delay 5000         Loop     End If     读取一行 = Var1(j)     j=j+1     //记录读取行数 End Function Sub 记录读取行数()     Dir.Delete GetTempDir()&"/微博帐号记录.txt"     Call File.Write (GetTempDir() & "/微博帐号记录.txt",j)  End Sub Function 登录易码()     TracePrint "易码登陆函数",易码账号,易码密码     If 易码账号 = "" or 易码密码 = "" Then          TracePrint "易码账号或密码为空",3000     End If     Do //登陆易码         wy = "http://api.51ym.me/UserInterface.aspx?action=login&username=" & 易码账号 & "&password=" & 易码密码         Dim cs= url.get(wy)         If cs Then              Dim 登陆 = Split (cs,"|")             token = 登陆(1)             TracePrint "易码登陆成功" & token ,3000             Exit Do         ElseIf cs = "1005" Then             TracePrint "用户名或密码错误", 3000         ElseIf cs = "1006" then             TracePrint "用户名不能为空", 3000         ElseIf cs = "1007" Then             TracePrint "密码不能为空",3000         ElseIf cs = "1009" Then             TracePrint "账户已被禁用", 3000             EndScript         End If         Delay 3000     Loop End Function Function 获取手机号() //易码登陆函数     手机打码累计次数 = 手机打码累计次数 + 1     TracePrint "本账号第"&手机打码累计次数&"次获取手机码"     Do  //获取手机号         TracePrint "准备获取手机号"         wy = "http://api.51ym.me/UserInterface.aspx?action=getmobile&itemid=" & sid & "&token=" & token&"&coderid=1286"&"&country=1"&"&isp=1"         cs= url.get(wy)         If cs Then              If cs = "1008" Then                  TracePrint "账号余额不足", 3000             ElseIf cs = "2004" Then                 TracePrint "暂时没有可用的号码,三秒钟之后再次获取", 3000             ElseIf cs = "2005" Then                 TracePrint "获取号码数量已达到上限",3000             ElseIf InStr(1, cs, "success") > 0 Then                 Dim 手机 = Split (cs,"|")                 手机号 = 手机(1)                 TracePrint "获取手机号码" & 手机号 & "成功", 1000                 Delay 1000                 Exit Do             End If         Else              TracePrint "暂时未连接到易码服务器,三秒后再次尝试",3000         End If         Delay 3000     Loop End Function Dim 成功获取验证码 Function 获取验证码()     成功获取验证码=False     TracePrint "获取验证码函数"     Dim q = 0     Do         wy = "http://api.51ym.me/UserInterface.aspx?action=getsms&mobile=" & 手机号 & "&itemid=" & sid & "&token=" & token & "&*release=1"         cs = URL.Get(wy)         If cs Then              If cs = "3001" Then                 TracePrint "正在获取验证码,将在"& 20 - q & "秒后超时",3000                 Delay 3000                 q = q + 1             ElseIf InStr(1, cs, "success") > 0 Then                 TracePrint cs,1000                 dim c = shanhai.RegexFind(cs, "%d%d%d%d%d%d")  //%d%d%d%d%d%d 是6位验证码,根据自己的需求酌情调整验证码位数                 验证码 = c(0)                 TracePrint 验证码,1000                 成功获取验证码=True                 Exit Do             Else                  TracePrint "连接易码服务器异常,3秒后再次尝试", 3000             End If             If q > 20 Then                  成功获取验证码=False                 TracePrint "获取验证码超时", 3000                 点击 28,76, "超时----返回手机绑定页面"                 Delay 1000             End If         End If     Loop End Function Function 拉黑释放验证码()     Dim wy1 = url.get("http://api.51ym.me/UserInterface.aspx?action=addignore&mobile="& 手机号 &"&itemid=" & sid &"&token=" & token)     Dim wy2 = url.get("http://api.51ym.me/UserInterface.aspx?action=release&mobile="& 手机号 &"&itemid="& sid &"&token="&token)     If wy1 = "success" Then          TracePrint "拉黑成功", 1000         Delay 1000      End If     If wy2 = "success" Then          TracePrint "释放成功", 1000         Delay 1000     End If End Function Sub 过验证码()     If 判断连接线数量("圆1") = 1 Then          最终= 判断方向 ("圆1")     End If     If 判断连接线数量("圆2") = 1 Then          最终=最终& 判断方向 ("圆2")     End If     If 判断连接线数量("圆3") = 1 Then          最终=最终&判断方向 ("圆3")     End If     If 判断连接线数量("圆4") = 1 Then          最终=最终&判断方向 ("圆4")     End If         正 = Mid(最终, 1, 2) & Mid(最终, 4, 1) & Mid(最终, 3, 1)         TracePrint 正         滑 正         延迟 2
 
              延迟 5
 
          反 = Mid(最终, 3, 2) & Mid(最终, 2, 1) & Mid(最终, 1, 1)     TracePrint 反     滑 反     延迟 5
  End Sub Sub 滑(参数)     Dim 坐标1 = Mid(参数, 1, 1)     Dim 坐标2 = Mid(参数, 2, 1)     Dim 坐标3 = Mid(参数, 3, 1)     Dim 坐标4= Mid(参数, 4, 1)     TouchDown 点坐标X (坐标1-1),  点坐标Y (坐标1-1), 1     TouchMove 点坐标X (坐标2-1), 点坐标Y (坐标2-1), 1, 500     TouchMove 点坐标X (坐标3-1),  点坐标Y (坐标3-1), 1, 500     TouchMove  点坐标X (坐标4-1),  点坐标Y (坐标4-1), 1, 500     TouchUp 1 End Sub Function 判断连接线数量(参数)     数量=0     Select Case 参数     Case "圆1"         数组X = 圆1X         数组Y = 圆1Y     Case "圆2"         数组X = 圆2X         数组Y = 圆2Y     Case "圆3"         数组X = 圆3X         数组Y = 圆3Y     Case "圆4"         数组X = 圆4X         数组Y = 圆4Y     End Select     For i = 0 To UBOUND(圆1X)         是否相等 = CmpColor(数组X (i),数组Y(i),"FFFFFF-101010",0.9)         If 是否相等 > -1 Then             //TracePrint "非黑色"         Else             // TracePrint "黑色"             数量=数量+1         End If     Next     判断连接线数量= 数量  End Function Function 判断方向(参数)     If 参数 = "圆1" Then          For i = 0 To UBOUND(圆1X)             是否相等 = CmpColor(圆1X(i),圆1Y(i),"FFFFFF-101010",0.9)             If 是否相等 > -1 Then                 // TracePrint "非黑色"             Else                 //TracePrint "黑色"                 If 圆1X(i) = 170 Then '需要修改                     判断 = "2"                 End If                 If 圆1X(i) = 155 Then '需要修改                     判断 = "4"                         End If                 If 圆1X(i) = 120 Then '需要修改                     判断= "3"                         End If              End If             判断方向="1"&  判断         Next     End If     If 参数 = "圆2" Then          For i = 0 To UBOUND(圆2X)             是否相等 = CmpColor(圆2X(i),圆2Y(i),"FFFFFF-101010",0.9)             If 是否相等 > -1 Then                 // TracePrint "非黑色"             Else                 //TracePrint "黑色"                 If 圆2X(i) = 220 Then '需要修改                     判断= "1"                 End If                 If 圆2X(i) = 235 Then '需要修改                     判断 = "3"                         End If                 If 圆2X(i) = 270 Then '需要修改                     判断 = "4"                         End If              End If             判断方向="2"&  判断         Next     End If     If 参数 = "圆3" Then          For i = 0 To UBOUND(圆3X)             是否相等 = CmpColor(圆3X(i),圆3Y(i),"FFFFFF-101010",0.9)             If 是否相等 > -1 Then                 // TracePrint "非黑色"             Else                 //TracePrint "黑色"                 If 圆3X(i) = 120 Then '需要修改                     判断 = "1"                 End If                 If 圆3X(i) = 155 Then '需要修改                     判断 = "2"                         End If                 If 圆3X(i) = 170 Then '需要修改                     判断 = "4"                         End If              End If         Next         判断方向="3"&  判断     End If     If 参数 = "圆4" Then          For i = 0 To UBOUND(圆4X)             是否相等 = CmpColor(圆4X(i),圆4Y(i),"FFFFFF-101010",0.9)             If 是否相等 > -1 Then                 // TracePrint "非黑色"             Else                 //TracePrint "黑色"                 If 圆4X(i) = 270 Then '需要修改                     判断 = "2"                 End If                 If 圆4X(i) = 235 Then '需要修改                     判断 = "1"                         End If                 If 圆4X(i) = 220 Then '需要修改                     判断 = "3"                         End If              End If             判断方向="4"&  判断         Next     End If     TracePrint "**************" End Function    
                        
                     
                    
                    
                    
                    
                    
                    
                    
                    
                        
                        
                     
                     |