We all know what is captcha if you don't know what is, captcha is a word test or more than one word test that is mixed and cannot identify easily that is used to verify human. Okay now we are going to make it first you need to add a class so go ahead and add a class and add the codes below to the class.
Change the text property of button 1 to Submit and change the text property of button 2 to Reset and now make your form look like this
To check the captcha, let's code double click Submit button and add this code
Imports System.Text
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Drawing.Drawing2D
Class Captcha
Inherits PictureBox
Public randomstr As String
#Region "Properties"
Private _textcolor As Color = Color.Black
Public Property TextColor() As Color
Get
Return _textcolor
End Get
Set(ByVal value As Color)
_textcolor = value
Invalidate()
End Set
End Property
Private _font As New Font("Segoe UI", 20)
Public Overrides Property Font() As Font
Get
Return _font
End Get
Set(ByVal value As Font)
_font = value
Invalidate()
End Set
End Property
Private _texttouse As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmopqrstuvwxyz1234567890"
Public Property RandomCharacters() As String
Get
Return _texttouse
End Get
Set(ByVal value As String)
_texttouse = value
Invalidate()
End Set
End Property
Private _captchalength As Integer = 8
Public Property CaptchaTextLength() As Integer
Get
Return _captchalength
End Get
Set(ByVal value As Integer)
_captchalength = value
Invalidate()
End Set
End Property
Private _numberoflines As Integer = 50
Public Property NumberOfLines() As Integer
Get
Return _numberoflines
End Get
Set(ByVal value As Integer)
_numberoflines = value
Invalidate()
End Set
End Property
#End Region
#Region "Events"
Public Sub New()
SetStyle(ControlStyles.AllPaintingInWmPaint, True)
SetStyle(ControlStyles.ResizeRedraw, True)
SetStyle(ControlStyles.UserPaint, True)
SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
SetStyle(ControlStyles.SupportsTransparentBackColor, True)
End Sub
Protected Overrides Sub CreateHandle()
MyBase.CreateHandle()
Me.Size = New Size(241, 69)
Me.BorderStyle = BorderStyle.FixedSingle
End Sub
Public CaptchaText As String = String.Empty
Private rnd As New Random()
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
Dim B As New Bitmap(Width, Height)
Dim G As Graphics = Graphics.FromImage(B)
Dim BoxSize As New Rectangle(0, 0, Me.Width, Me.Height)
Dim txtcolor As Brush = New SolidBrush(Color.FromArgb(rnd.[Next](160, 255), _textcolor))
G.SmoothingMode = SmoothingMode.HighQuality
G.Clear(BackColor)
For I As Integer = 0 To _numberoflines - 1
G.DrawLine(New Pen(Color.FromArgb(rnd.[Next](128, 255), CreateRandomColor())), rnd.[Next](0, BoxSize.Width), rnd.[Next](0, BoxSize.Height), rnd.[Next](BoxSize.Width), rnd.[Next](BoxSize.Height))
Next
Dim SFormat As New StringFormat()
SFormat.Alignment = StringAlignment.Center
SFormat.LineAlignment = StringAlignment.Center
G.RotateTransform(rnd.[Next](-7, 7), MatrixOrder.Append)
randomstr = CreateRandomString()
G.DrawString(randomstr, Font, txtcolor, BoxSize, SFormat)
CaptchaText = randomstr
e.Graphics.DrawImage(B, 0, 0)
G.Dispose()
B.Dispose()
End Sub
#End Region
#Region "Create Randoms"
Private Function CreateRandomColor() As Color
Return Color.FromArgb(100, rnd.[Next](255), rnd.[Next](255), rnd.[Next](255))
End Function
Private Function CreateRandomString() As String
Dim buffer As Char() = New Char(_captchalength - 1) {}
For i As Integer = 0 To _captchalength - 1
If _texttouse = String.Empty Then
Dim newtext As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmopqrstuvwxyz1234567890"
buffer(i) = newtext(rnd.[Next](newtext.Length))
Else
buffer(i) = _texttouse(rnd.[Next](_texttouse.Length))
End If
Next
Return New String(buffer)
End Function
#End Region
End Class
After that debug your project and now there will be a new tool in your toolbox called "Captcha" now you need two buttons and a text box so drag and drop them into the form and now add the Captcha tool inside the form .Change the text property of button 1 to Submit and change the text property of button 2 to Reset and now make your form look like this
To check the captcha, let's code double click Submit button and add this code
If TextBox1.Text = Captcha1.CaptchaText Then
MsgBox("Correct Input", MsgBoxStyle.Information)
Else
MsgBox("Wrong Input", MsgBoxStyle.Critical)
End If
Double click Reset button and add this codeCaptcha1.Refresh()Finally debug and have fun


13 comments
Sorry if this is a bad question, but how do you take this very nice captcha that you built and make it available as a website? Popup? Any direction on how to do that would help.
ReplyThis can only be used in VB.NET and maybe in ASP.NET, i am not sure about it.
ReplyThanks . ;)
ReplyI've used in vb.net desktop application and works!!! not fine but works!!!!!
ReplyHi, Nice captcha you have there, I have few questions and need your help, can you help with this ? I'm facing problem with the class code. For this line of code, error is detected' and is expecting '>' as well as for this code <.span id="IL_AD1" class="IL_AD">Public randomstr As String. For this code <.span id="IL_AD8" class="IL_AD">Bitmap(Width, Height), Type is expected. Span is not allowed here, so i purposely put a dot beside the span. Thank You.
ReplyIt's some HTML tags get into the codes section that's the problem
ReplyI see, thank you :)
Replyi cant get a solution for the captcha1.CaptchaText in the (button1_click)it shows error wherever the captcha1 is present please reply me asap
Replythanks a lot it works a great
ReplyIt is a great think of the VB.net using captcha text generator with good work for the secure with the page are sites. It do for pleasant work in captcha coding. I like do these programming.
ReplyDotnet Training in Chennai
my last comment was bad. this is a good works!!!!
ReplyI have read your blog its very attractive and impressive. I like it your blog.
ReplyDot Net Training in Chennai Dot Net Training in Chennai .Net Online Training .Net Online Training Dot Net Training in Chennai
Dot Net Online Training .Net Online Training ASP.NET Online Training ASP.NET Online Training
You.
ReplyThinking there might be someone who is reading this and who knows that I am right this very moment as I write this loving you so much, just unconditionally and wholeheartedly. Yes, I thought. I am lonely. Yes, I sometimes wish life were more straightforward and easy, but you are helping me by existing. You are giving me such a gift letting me love you right now.
(And always, getting appropriate medication and counseling is top of a to-do list about suicidal feelings or depression. I’m a huge fan of the Caron Institute for recommendations on good counselors in your area and as a wonderful support network in general. And please don't rule out medication like I did for most of my adult years. I find my life so much better on Zoloft, and it took me more than 30 years to consider the route. There are also so many awesome support groups that are life changing. If one sucks, it's OK. Go to the next one! That sucks, too? Cool. Maybe try another one. Maybe don't. Action steps are great, though. So give yourself that credit for even thinking about taking them. You're not alone, friend. I swear to God you are not.)
ADVERTISING
inRead invented by Teads
And while you’re waiting to get your first therapy appointment, maybe, just maybe, something from this list will remind you of stuff you like out there in this world.
Post a Comment
Note: Only a member of this blog may post a comment.