找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 26637|回复: 34

[教程源码] PC端本地过滑动验证(下)

  [复制链接]

3

主题

6

回帖

12

积分

按键电脑班学员

鲜花
0
猫粮
112
QQ
发表于 2018-1-28 08:17:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
PC端本地过滑动验证(上)

通过1311师兄的思路,写了这个过滑动验证脚本,经过测试,成功写入(操作)后,可以过滑动验证。代码肯定有不足的地方,希望老师和同学们指正。另外,在空闲的时候,无偿给写写小脚本,大家一起学习,一起进步.
由于代码过长,分为上下部分发帖。下部分为获取验证滑块坐标,代码有点粗糙,没有优化,请大家帮忙优化一下
[按键精灵] 纯文本查看 复制代码
Dim DBpath

DBpath = "C:\滑动数据库测试.mdb"

Function GetPos(图片名)
        Dim DBIndex, TBIndex, arr, i, j, x, y, data, 终点
        Dim ValueS, 起点x, 起点y, 终点x, 终点y, x间距, y间距
        起点x=240 : 终点x=433
        起点y=287 : 终点y=407
        x间距=60 : y间距=40
        DBIndex = Plugin.LazyOffice.AccDBOpen(DBpath)
        TBIndex = Plugin.LazyOffice.AccTBOpen(图片名, DBIndex,"picdata","")
        arr = Plugin.LazyOffice.AccTBGetValueArrC("picdata", TBindex, DBindex)
        ValueS = Join(arr, ",")
        x = ""
        Do
                If x间距 >= 40 Then 
                        For i = 起点x To 终点x step x间距
                            For j = 起点y To 终点y Step y间距
                                Data = i & "," & j & "|" & GetPixelColor(i, j)
                //                TracePrint data
                                If InStr(ValueS,Data) = 0 Then 
                                        TracePrint i &","& j
                                    x = i
                                    y = j
                                    Exit Do
                                End If
                            Next
                        Next
                Else 
                        GetPos = ""
                        Call 关闭数据库()
                        Exit Function
                End If
                x间距 = x间距 - 10
        Loop
        Rem 标记
        终点 = x + 100
        If 终点 > 终点x Then 
            终点 = 终点x
        End If
        For i = 终点 To x step -1
            Data = i & "," & y & "|" & GetPixelColor(i, y)
            If InStr(ValueS,Data) = 0 Then 
                x = i
                Exit For 
            End If
        Next
        TracePrint "返回坐标为:" & x & "," & y
        GetPos = x 
        Call 关闭数据库()
End Function
Function GetPic()
        Dim Data,图片名,pos
        For i = 156 To 165
            If Data = "" Then 
                Data = i & "," & 424 & "|" & GetPixelColor(i, 424)
        Else 
                Data = Data & "," & i & "," & 424 & "|" & GetPixelColor(i, 424)
            End If
    Next
        If Plugin.Access.Connect(DBpath, "") = False Then 
                TracePrint "数据库连接失败"
                Exit Function
        End If
        图片名 = Plugin.Access.SelectData("集合表", "TPName", "picdatas='" & Data & "'")
        If 图片名 <> "" Then 
                pos = InStr(图片名, " ")
                图片名 = Left(图片名, pos - 1)
                GetPic = 图片名
                TracePrint "图片为:" & 图片名 & ",图片长度为:" & len(图片名)
        Else 
                TracePrint "未匹配到数据库的图片数据"
                GetPic = ""
                Exit Function
        End If
        TracePrint Plugin.Access.Close & "断开数据库连接"
End Function

评分

参与人数 1猫粮 +5 收起 理由
紫猫 + 5 很给力!

查看全部评分

楼主热帖

3

主题

6

回帖

12

积分

按键电脑班学员

鲜花
0
猫粮
112
QQ
 楼主| 发表于 2018-1-28 08:19:41 | 显示全部楼层
这2个函数可以一起运行,是2个不同数据库插件写的代码。一个数据库下不能连续操作2个表,有没人有办法解决:Q:Q:Q
  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7413
QQ
发表于 2018-1-28 17:25:42 | 显示全部楼层
肯定可以操作不同表的, 估计是你没有处理好索引问题, 用完要关闭索引, 再使用另一张表

2

主题

24

回帖

28

积分

按键电脑&手机班学员

鲜花
0
猫粮
121
QQ
发表于 2018-1-28 20:02:00 | 显示全部楼层
谢谢分享,支持一下.

3

主题

6

回帖

12

积分

按键电脑班学员

鲜花
0
猫粮
112
QQ
 楼主| 发表于 2018-1-29 08:22:04 | 显示全部楼层
谢谢老师指点,已找到错误的地方,封装函数的时候,把库索引和表索引(DBIndex,TBindex),定义成了局部变量,关闭表和库的子程序参数没传进去,;P;P;P修正如下:
[按键精灵] 纯文本查看 复制代码
Sub 关闭数据库(DBIndex,TBindex)
    Call Plugin.LazyOffice.AccDBClose(DBIndex)
    Call Plugin.LazyOffice.AccTBClose(TBindex, DBIndex)
End Sub

3

主题

6

回帖

12

积分

按键电脑班学员

鲜花
0
猫粮
112
QQ
 楼主| 发表于 2018-1-29 08:24:41 | 显示全部楼层
这样一来,以上代码可以用一个插件来写,脚本可以进一步优化

0

主题

5

回帖

5

积分

按键电脑&手机班学员

鲜花
0
猫粮
26
QQ
发表于 2018-1-29 10:22:52 | 显示全部楼层
学习一下
  • 打卡等级:无名新人

1

主题

7

回帖

9

积分

按键电脑班学员

鲜花
0
猫粮
261
发表于 2018-1-29 21:41:28 | 显示全部楼层

学习一下

0

主题

1

回帖

1

积分

学前班

鲜花
0
猫粮
4
发表于 2018-1-31 22:24:45 | 显示全部楼层
谢谢分享,看看是怎么操作的

0

主题

1

回帖

1

积分

学前班

鲜花
0
猫粮
0
发表于 2018-1-31 22:38:38 | 显示全部楼层
6666666666666666666666666666666
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学园

GMT+8, 2024-11-21 21:45

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表