#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.0.0
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here
#RequireAdmin
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#Include <Misc.au3>

Global $Ab = "Acc+"
Global $firstrun =  RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\"&$Ab&"\config","Firstrun")
Global $Schlussel = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\"&$Ab&"\config","Schlüssel")

If _Singleton("Schlüssel", 1) = 0 Then
		MsgBox(0x40030, "Fehler", "Es wurde bereits eine laufende Instanz vom Wecker erkannt.")
		Exit
EndIf
If $firstrun = 0 Then
		MsgBox(0,"Herzlich Willkommen","Herzlich Willkommen bei meinem Programm."&"Ich hoffe ihnen gefällt es.")
		RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\"&$Ab&"\config","Firstrun","REG_SZ","1")
	EndIf
	
If $Schlussel = "" Then
$SSErkennung = GUICreate("Serienschlüssel", 246, 225, 193, 125)
GUISetBkColor(0x99B4D1)
GUICtrlCreateLabel("Herzlich Willkommen bei meinem Programm.", 16, 8, 211, 17)
$1 = GUICtrlCreateInput("xxx", 48, 72, 33, 21)
GUICtrlSetLimit(-1, 3)
GUICtrlCreateLabel("---", 88, 72, 13, 17)
$2 = GUICtrlCreateInput("xxx", 104, 72, 33, 21)
GUICtrlSetLimit(-1, 3)
GUICtrlCreateLabel("---", 144, 72, 13, 17)
$3 = GUICtrlCreateInput("xxx", 160, 72, 33, 21)
GUICtrlSetLimit(-1, 3)
GUICtrlCreateLabel("Bitte geben sie zuerst den Serienschlüssel ein", 16, 32, 219, 17)
GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFF00)
GUICtrlCreateLabel("Sie erhalten einen Serienschlüssel unter:", 16, 112, 195, 17)
GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFF00)
$Label6 = GUICtrlCreateLabel("Hier kommt noch was!", 16, 144, 109, 17)
GUICtrlSetColor(-1, 0x000080)
$Ok = GUICtrlCreateButton("Ok", 144, 184, 75, 25, $BS_DEFPUSHBUTTON)
$Exit = GUICtrlCreateButton("Abbrechen", 24, 184, 75, 25, 0)
GUISetState(@SW_SHOW)


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE,$Exit
			Exit
		Case $Ok 
			Serienschluessel()
	EndSwitch
WEnd
Else
MsgBox(0,"","Schlüssel erkannt."&@CRLF&"Viel Spaß!")
Exit
EndIf

Func Serienschluessel()
			$Teil1 = GUICtrlRead($1)
			$Teil2 = GUICtrlRead($2)
			$Teil3 = GUICtrlRead($3)
			$Komplett = $Teil1&$Teil2&$Teil3
			$GetFile = InetGet("http://file1.npage.de/001091/60/download/schluessel.txt", @TempDir & "\v", 1, 0)
			If $GetFile = @error Then 
				$Fehler1=MsgBox(0x40010+0x5, "Fehler", "Problem bei der Verbindung mit dem Updateserver.")
				If $Fehler1 = 4 Then
					Return Serienschluessel()
				EndIf
				EndIf		
					Global $Text = FileOpen(@TempDir & "\v",0)
					If $Text = @error Then 
						$Fehler2 = MsgBox(0x40010+0x5, "Fehler", "Problem bei der Öffnung der Datenbank."&@CRLF&"Fehler: "&@error)
						If $Fehler2 = 4 Then
							Return Serienschluessel()
						EndIf
					EndIf	
				For $1 = 1 To 200 Step +1
					Global $gs = FileReadLine($Text, $1)
					If $Komplett = $gs Then 
						MsgBox(0,"Erfolg","Ihr Serienschlüssel wurde erfolgreich erkannt!")
					Global	$Reg = RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\"&$Ab&"\config","Schlüssel","REG_SZ",$gs)
						If $Reg = @error Then 
							$Fehler4 = MsgBox(0x40010+0x5,"Fehler","Problem beim Registrieren des Schlüssels"&@CRLF&"Fehler: "&@error)
							If $Fehler4 = 4 Then
								Return Serienschluessel()
							EndIf
						EndIf
						GUIDelete($SSErkennung)
					EndIf	
				Next
				FileClose($Text)
				FileDelete($Text) 
				MsgBox(0,"Programm bitte Neustarten","Bitte starten sie jetzt das Programm neu damit die Registrierung abgeschlossen wird.")
				Exit
EndFunc