Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As LongPublic Function PicNnmber_Decode1(ByVal PicHandle As PictureBox) As String
Dim a(10) As String
a(0) = "0111111110"
a(1) = "0100000001"
a(2) = "0100000011"
a(3) = "0100000010"
a(4) = "0000011000"
a(5) = "1111100010"
a(6) = "0011111110"
a(7) = "1100000000"
a(8) = "0111011110"
a(9) = "0111100000"
With PicHandle
For k = 0 To 3
p = ""
For i = 0 To 9
X = GetPixel(.hdc, k * 10, i)
Debug.Print X
If X = 15724527 Or X = 15658734 Or X = 15395562 Or X = 8684164 Then
p = p & "0"
Else
p = p & "1"
End If
Next i
For j = 0 To 9
If a(j) = p Then PicNnmber_Decode1 = PicNnmber_Decode1 & j
Next
Next k
End With
If Len(PicNnmber_Decode1) < 4 Then PicNnmber_Decode1 = PicNnmber_Decode2(PicHandle)
End FunctionPublic Function PicNnmber_Decode2(ByVal PicHandle As PictureBox) As String
With PicHandle
For l = 0 To 3
p = ""
For i = 0 To 9
For j = l * 10 To l * 10 + 9
X = GetPixel(.hdc, j, i)
If X = 214 Or X = 204 Or X = 211 Or X = 15663351 Or X = 16711935 Or X = 15597812 Then
p = p & "1"
Else
p = p & "0"
End If
Next
Next
PicNnmber_Decode2 = PicNnmber_Decode2 & GetNumber(p)
Next
End With
End FunctionPublic Function GetNumber(ByVal BumberData As String) As String
Dim ChrNumber(10) As String
ChrNumber(0) = "0001111000001000010000100001000010110100001011010000101101000010110100001000010000100001000001111000"
ChrNumber(1) = "0000100000001110000000001000000000100000000010000000001000000000100000000010000000001000000011111000"
ChrNumber(2) = "0001111000001000010000100001000000000100000000100000000100000000100000000100000000100001000011111100"
ChrNumber(3) = "0001111000001000010000100001000000001000000011000000000010000000000100001000010000100001000001111000"
ChrNumber(4) = "0000010000000001000000001100000001010000001001000000100100000011111100000001000000000100000000111100"
ChrNumber(5) = "0011111100001000000000100000000010111000001100010000000001000000000100001000010000100001000001111000"
ChrNumber(6) = "0000111000000100010000100000000010000000001011100000110001000010000100001000010000100001000001111000"
ChrNumber(7) = "0011111100001000100000100010000000010000000001000000001000000000100000000010000000001000000000100000"
ChrNumber(8) = "0001111000001000010000100001000010000100000111100000010010000010000100001000010000100001000001111000"
ChrNumber(9) = "0001110000001000100000100001000010000100001000110000011101000000000100000000010000100010000001110000"
For k = 0 To 9
For i = 1 To Len(ChrNumber(k))
cob1 = Right(Left(ChrNumber(k), i), 1)
If cob1 = "1" Then
If Not (cob1 = Right(Left(BumberData, i), 1)) Then Exit For
End If
Next
If i > Len(ChrNumber(k)) - 2 Then GetNumber = k: Exit Function
Next
End Function
有空来我网站做做HTTP://www.souker.com
Dim a(10) As String
a(0) = "0111111110"
a(1) = "0100000001"
a(2) = "0100000011"
a(3) = "0100000010"
a(4) = "0000011000"
a(5) = "1111100010"
a(6) = "0011111110"
a(7) = "1100000000"
a(8) = "0111011110"
a(9) = "0111100000"
With PicHandle
For k = 0 To 3
p = ""
For i = 0 To 9
X = GetPixel(.hdc, k * 10, i)
Debug.Print X
If X = 15724527 Or X = 15658734 Or X = 15395562 Or X = 8684164 Then
p = p & "0"
Else
p = p & "1"
End If
Next i
For j = 0 To 9
If a(j) = p Then PicNnmber_Decode1 = PicNnmber_Decode1 & j
Next
Next k
End With
If Len(PicNnmber_Decode1) < 4 Then PicNnmber_Decode1 = PicNnmber_Decode2(PicHandle)
End FunctionPublic Function PicNnmber_Decode2(ByVal PicHandle As PictureBox) As String
With PicHandle
For l = 0 To 3
p = ""
For i = 0 To 9
For j = l * 10 To l * 10 + 9
X = GetPixel(.hdc, j, i)
If X = 214 Or X = 204 Or X = 211 Or X = 15663351 Or X = 16711935 Or X = 15597812 Then
p = p & "1"
Else
p = p & "0"
End If
Next
Next
PicNnmber_Decode2 = PicNnmber_Decode2 & GetNumber(p)
Next
End With
End FunctionPublic Function GetNumber(ByVal BumberData As String) As String
Dim ChrNumber(10) As String
ChrNumber(0) = "0001111000001000010000100001000010110100001011010000101101000010110100001000010000100001000001111000"
ChrNumber(1) = "0000100000001110000000001000000000100000000010000000001000000000100000000010000000001000000011111000"
ChrNumber(2) = "0001111000001000010000100001000000000100000000100000000100000000100000000100000000100001000011111100"
ChrNumber(3) = "0001111000001000010000100001000000001000000011000000000010000000000100001000010000100001000001111000"
ChrNumber(4) = "0000010000000001000000001100000001010000001001000000100100000011111100000001000000000100000000111100"
ChrNumber(5) = "0011111100001000000000100000000010111000001100010000000001000000000100001000010000100001000001111000"
ChrNumber(6) = "0000111000000100010000100000000010000000001011100000110001000010000100001000010000100001000001111000"
ChrNumber(7) = "0011111100001000100000100010000000010000000001000000001000000000100000000010000000001000000000100000"
ChrNumber(8) = "0001111000001000010000100001000010000100000111100000010010000010000100001000010000100001000001111000"
ChrNumber(9) = "0001110000001000100000100001000010000100001000110000011101000000000100000000010000100010000001110000"
For k = 0 To 9
For i = 1 To Len(ChrNumber(k))
cob1 = Right(Left(ChrNumber(k), i), 1)
If cob1 = "1" Then
If Not (cob1 = Right(Left(BumberData, i), 1)) Then Exit For
End If
Next
If i > Len(ChrNumber(k)) - 2 Then GetNumber = k: Exit Function
Next
End Function
有空来我网站做做HTTP://www.souker.com
具体可以去我官方网站http://www.souker.com
以前是专门作论坛类营销软件的
现在改行做挂级网站了
csdn登陆界面的那个验证码是最没用了,所有字体一模一样,一个颜色、一样的大小、位置中规中矩。最郁闷的是输错密码了重新再输验证码居然不变?!%^$^$%#*^%^&
测试:
先打开一个含有验证码图片的网页。--------(网页1)
再打开http://xxx.xxx.com/DV_getcode.asp -------(网页2)
网页1中输入网页2中显示的 验证码,提交,能正常提交。DV_getcode.asp得到的就是图片,可以下载到本地。