#include <GDIPlus.au3>
#include <Array.au3>

$ttGUI = GUICreate ("MyCaptcha",400,300)

$pruefen = GUICtrlCreateButton ("Prüfen >>>",250,280,150,20)
$string = GUICtrlCreateInput ("",100,275,50,20)
GUICtrlSetLimit ($string,5)
GUISetState (@SW_SHOW)
$oCaptcha = Captcha ($ttGUI,20,20)

While 1
	$hmsg = GUIGetMsg ()
	Switch $hmsg
		Case -3
			Exit
		Case $pruefen
			If CheckCaptcha ($oCaptcha,GUICtrlRead($string)) Then
				MsgBox (0,"","Captcha richtig eingegeben.")
			Else
				MsgBox (0,"","Captcha falsch eingegeben.")
			EndIf
	EndSwitch
WEnd

Func Captcha ($oGUI,$oX,$oY)
	_GDIPlus_Startup ()
	Local $random="ABCDEFGHIJKLMONPQRSTUVXYZ123456789"
	Local $oGraphic = _GDIPlus_GraphicsCreateFromHWND ($oGUI)
	Local $oRanBack [1] = [""]
	For $i = $oX to $oX + 80 Step 20
		Local $oRanChar = StringMid($random,Random(1,StringLen($random),1),1)
	    _GDIPlus_GraphicsDrawString ($oGraphic,$oRanChar,$i,$oY,"Arial",20)
		_ArrayAdd ($oRanBack,$oRanChar)
	Next
	_GDIPlus_Shutdown()
	Return $oRanBack
EndFunc

Func CheckCaptcha ($yaCap,$tTest)
	If _ArrayToString ($yaCap,"",1) = $tTest Then
		Return True
	Else
		Return False
	EndIf
EndFunc
