Hi,
ich habe mal eine Captcha-Funktion geschrieben. In dieser
wird eine leichte Rechenaufgabe erstellt, die durch eine
Eingabe überprüft wird. Dieses ist z.B. nützlich für irgendeine
Registration o.Ä.
Funktionen:
_NewCaptcha($iControl)
Erstellt eine Captcha-Funktion und gibt die Abfrage in ein Control ein.
_CheckCaptcha($iControl)
Prüft eine zuvor erstellte Captcha-Funktion auf die Richtigkeit
Skript
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.2.0
Author: qixx (http://www.autoit.de)
Credits:
#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]#Region ### Includes
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#EndRegion ### Includes
#Region ### GUI
$MainGUI = GUICreate("Captcha", 145, 57)
$Label = GUICtrlCreateLabel("", 8, 8, 95, 17)
$NewButton = GUICtrlCreateButton("Neu", 96, 7, 41, 17)
$CaptchaInput = GUICtrlCreateInput("", 56, 28, 25, 21, $ES_NUMBER)
GUICtrlSetLimit(-1, 2)
GUICtrlCreateLabel("Ergebnis:", 8, 32, 48, 17)
$OkButton = GUICtrlCreateButton("Ok", 96, 30, 41, 17)
_NewCaptcha($Label)
GUISetState(@SW_SHOW)
#EndRegion ### GUI
While 1
Sleep(10)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $NewButton
_NewCaptcha($Label)
Case $OkButton
_CheckCaptcha($CaptchaInput)
EndSwitch
WEnd
;=================================================================================
;
; Function Name: _NewCaptcha
; Language: German
; Description: Erstellt eine Captcha-Funktion und gibt die Abfrage in ein
; Control ein.
; Parameter(s): $iControl : Ausgabe-Control der Abfrage
; Requirement(s): -
; Return Value(s): -
; Author(s): qixx (http://www.autoit.de)
;
;=================================================================================
Func _NewCaptcha($iControl)
Global $Zahl1 = Random(10,20,1)
Global $Zahl2 = Random(1,10,1)
Global $Operator = Random(1,2,1)
If $Operator = 1 Then
$Operator = " + "
Else
$Operator = " - "
EndIf
GUICtrlSetData($iControl, "Berechne: " & $Zahl1 & $Operator & $Zahl2 & ":")
EndFunc
;=================================================================================
;
; Function Name: _CheckCaptcha
; Language: German
; Description:: Prüft eine zuvor erstellte Captcha-Funktion auf die Richtigkeit
; Parameter(s): $iControl : Abfrage-Control der Eingabe des Captchas
; Requirement(s): -
; Return Value(s): -
; Author(s): qixx (http://www.autoit.de)
;
;=================================================================================
Func _CheckCaptcha($iControl)
If $Operator = " + " Then
If $Zahl1 + $Zahl2 = GUICtrlRead($iControl) Then
MsgBox(0,"Richtig","Das eingegebene Captcha ist korrekt")
Else
MsgBox(16,"Falsch","Das eingegebene Captcha ist nicht korrekt")
EndIf
ElseIf $Operator = " - " Then
If $Zahl1 - $Zahl2 = GUICtrlRead($iControl) Then
MsgBox(0,"Richtig","Das eingegebene Captcha ist korrekt")
Else
MsgBox(16,"Falsch","Das eingegebene Captcha ist nicht korrekt")
EndIf
Else
ConsoleWriteError("Scriptfehler! Falscher Operator! (-,+)" & @CRLF)
EndIf
EndFunc
MfG
qixx