• Soo ;)

    Ich hab hier beim Praktikum nun mein Programm in die 1. Phase gebracht.

    Was fehlt noch?
    -Accountabfrage bei Serialregistration, ob bereits vorhanden ist.
    -Email-Sendefunktion
    -Vollversion registrieren
    -FAQ


    Spoiler anzeigen
    [autoit]


    ;; ______________________________________________
    ; / /|
    ; / / |
    ; / / |
    ; / / |
    ; /______________________________________________/ |
    ; | Author: Schrubber | |
    ; | Name: SafeThat | |
    ; | Version: 1.0 | /
    ; | Homepage: http://www.Schrubbershomepage.de | /
    ; | Date: 7. Juli 2010 | /
    ; | Thanks to: progandy (_MySQL UDF) | /
    ; |______________________________________________|/

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;Was noch fehlt:
    ;Vollversion
    ;Emailsendefunktion
    ;EmailDaten
    ;Registerserial wegen Accountabfrage (ob vorhanden) nochmal überprüfen

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <mysql.au3>
    #include <libMySQLdll.au3>
    #include <Inet.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    OnAutoItExitRegister("_cleanup")

    [/autoit] [autoit][/autoit] [autoit]

    Global $MySQLConn
    Global Const $toolname = "SafeThat Testversion"
    Global Const $short = "Safethat"
    Global Const $Username = "root"
    Global Const $Password = "root"
    Global Const $MySQLServerName = "localhost"
    Global Const $dbname = "lolrofl"
    Global Const $Database = $dbname
    Global Const $table = "tool"
    Global Const $link = "http://Schrubbershomepage.de"
    Global Const $linkfaq = "http://Schrubbershomepage.de/Faq.html"
    Global COnst $linkvollversion = "http://Schrubbershomepage.de/Vollversion.html"
    Global $i_wunschaccount = ""
    Global $i_wunschpasswort = ""
    Global $login = 0

    [/autoit] [autoit][/autoit] [autoit]

    _MySQL_InitLibrary()
    If @error Then
    TrayTip('Error', 'libmysql.dll konnte nicht gefunden werden', 10, 3)
    Sleep(10000)
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Global $MySQLConn = _MySQL_Init()
    $Connected = _MySQL_Real_Connect($MySQLConn, $MySQLServerName, $UserName, $Password, $Database)
    If Not $Connected Then
    TrayTip('Error', 'Verbindung zur Datenbank konnte nicht hergestellt werden', 10, 3)
    Sleep(10000)
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $GUI1 = GUICreate($toolname, 386, 332, 192, 124)
    $dateimenu = GUICtrlCreateMenu("Datei")
    $serialitem = GUICtrlCreateMenuItem("Serial registrieren", $dateimenu)
    $datenitem = GUICtrlCreateMenuItem("Daten ändern", $dateimenu)
    $vollversionitem = GUICtrlCreateMenuItem("Vollversion", $dateimenu)
    $exititem = GUICtrlCreateMenuItem("Exit", $dateimenu)
    $fragemenu = GUICtrlCreateMenu("?")
    $kontaktitem = GUICtrlCreateMenuItem("Kontakt", $fragemenu)
    $aboutitem = GUICtrlCreateMenuItem("About", $fragemenu)
    $faqitem = GUICtrlCreateMenuItem("FAQ´s", $fragemenu)
    $b_login = GUICtrlCreateButton("Login", 264, 256, 113, 25, $WS_GROUP)
    $b_buyfull = GUICtrlCreateButton("Vollversion kaufen", 136, 257, 113, 23, $WS_GROUP)
    $b_registerserial = GUICtrlCreateButton("Serial registrieren", 8, 256, 113, 25, $WS_GROUP)
    $l_headline = GUICtrlCreateLabel($short, 50, 24, 260, 58)
    GUICtrlSetFont(-1, 28, 800, 2, "Nightclub BTN")
    $l_username = GUICtrlCreateLabel("by Schrubber",210, 94, 80, 17)
    $i_username = GUICtrlCreateInput("", 104, 144, 233, 21)
    $i_passwort = GUICtrlCreateInput("", 104, 176, 233, 21, $ES_PASSWORD)
    $l_username = GUICtrlCreateLabel("Username", 40, 144, 52, 17)
    $l_password = GUICtrlCreateLabel("Password", 40, 176, 50, 17)
    $l_info = GUICtrlCreateLabel("Sie nutzen die", 40, 224, 74, 17)
    $l_version = GUICtrlCreateLabel("Testversion", 112, 224, 59, 17)
    GUICtrlSetColor(-1, 0xFF0000)
    $l_leftinfo = GUICtrlCreateLabel("Verbleibende Zeit:", 16, 296, 90, 17)
    $l_timeleft = GUICtrlCreateLabel("(No time)", 112, 296, 45, 17)
    GUISetState(@SW_SHOW, $GUI1)

    [/autoit] [autoit][/autoit] [autoit]

    While True
    $nMsg = GUIGetMsg()
    Switch $nMsg

    [/autoit] [autoit][/autoit] [autoit]

    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Case $b_login
    _login()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Case $b_registerserial
    _registerserial()

    [/autoit] [autoit][/autoit] [autoit]

    Case $serialitem
    _registerserial()

    [/autoit] [autoit][/autoit] [autoit]

    Case $datenitem
    _datenaendern()

    [/autoit] [autoit][/autoit] [autoit]

    Case $exititem
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $faqitem
    ShellExecute($linkfaq)

    [/autoit] [autoit][/autoit] [autoit]

    Case $vollversionitem
    _vollversion()

    [/autoit] [autoit][/autoit] [autoit]

    Case $kontaktitem
    _contact()

    [/autoit] [autoit][/autoit] [autoit]

    Case $aboutitem
    _about()

    [/autoit] [autoit][/autoit] [autoit]

    Case $b_buyfull
    ShellExecute($link)
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _login()
    if(GUICTRLRead($b_login) = "Login") then
    if(GuiCtrlRead($i_username) = "") then
    MSGBOX(0, "Fehler", "Bitte geben sie einen Usernamen ein!")
    elseif (GuiCtrlRead($i_passwort) = "") Then
    MSGBOX(0, "Fehler", "Bitte geben sie ein Passwort ein.")
    Else
    $dbuserpw = _mysql_checklogin($MySQLConn, $table, GUICtrlRead($i_username))
    If $dbuserpw = GUICtrlRead($i_passwort) Then
    MsgBox(0, "Anmeldung erfolgreich", "Sie haben sich erfolgreich eingeloggt.")
    ;Versionscheck V = Vollversion
    $version = _mysql_checkversion($MySQLConn, $table, GUICtrlRead($i_username))
    if($version = "V") then
    GuiCtrlSetData($l_version, "Vollversion")
    GuiCtrlSetColor($l_version, 0x006400)
    Else
    GuiCtrlSetData($l_version, "Testversion")
    GuiCtrlSetColor($l_version, 0xFF0000)
    ;Versionscheck Ende
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Timecheck TTMMJJJJ
    $time = _mysql_checktime($MySQLConn, $table, GUiCtrlRead($i_username))
    $abgelaufen = 0
    GuiCtrlSetData($l_timeleft, $time)
    if($time < "1") Then
    $abgelaufen = 1
    MSGBox(0, "Fehler", "Ihre Version ist abgelaufen. Zum Kauf der Vollversion / Verlängerung der Vollversion bitte auf 'Vollversion kaufen' drücken.")
    GUICtrlSetData($b_login, "Exit")
    Else
    if($time < "30") Then
    GuiCtrlSetColor($l_timeleft, 0x00FF00)
    elseif($time < "20") Then
    GuiCtrlSetColor($l_timeleft, 0xFFA500)
    elseif($time < "10") Then
    GuiCtrlSetColor($l_timeleft, 0xFF0000)
    EndIf
    GUICtrlSetData($b_login, "Weiter")
    EndIf
    ;Timecheck Ende

    [/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(0, "Anmeldung fehlgeschlagen", "Bei der Anmeldung trat ein Fehler auf. Bitte überprüfen sie Ihren Account / Ihr Passwort.")
    EndIf
    EndIf
    elseif (GUICTRLRead($b_login) = "Exit") Then
    Exit
    elseif(GUICtrlRead($b_login) = "Weiter") then
    $login = 1
    _startTool()
    EndIf
    EndFunc ;==>_login

    [/autoit] [autoit][/autoit] [autoit]

    Func _registerserial()
    $_1 = GUICreate("Serial registrieren", 301, 190, 400, 50)
    $title = GUICtrlCreateLabel("Serial registrieren", 55, 10, 212, 34)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetFont(-1, 20)
    $l_wunschaccount = GUICtrlCreateLabel("Account", 5, 50, 44, 20)
    $i_wunschaccount = GUICtrlCreateInput("", 50, 48, 150, 21)
    $l_wunschpasswort = GUICtrlCreateLabel("Passwort", 5, 80, 44, 20)
    $i_wunschpasswort = GUICtrlCreateInput("", 50, 77, 150, 21, $ES_Password)
    $part1 = GUICtrlCreateInput("", 5, 114, 50, 21)
    GUICtrlSetLimit(-1, 5)
    $part2 = GUICtrlCreateInput("", 65, 114, 50, 21)
    GUICtrlSetLimit(-1, 5)
    $part3 = GUICtrlCreateInput("", 125, 114, 50, 21)
    GUICtrlSetLimit(-1, 5)
    $part4 = GUICtrlCreateInput("", 185, 114, 50, 21)
    GUICtrlSetLimit(-1, 5)
    $part5 = GUICtrlCreateInput("", 245, 114, 50, 21)
    GUICtrlSetLimit(-1, 5)
    $b_sendserial = GUICtrlCreateButton("Abschicken", 20, 145, 70, 30, $WS_GROUP)
    $b_help = GUICtrlCreateButton("Hilfe", 110, 145, 70, 30, $WS_GROUP)
    $b_exitserial = GUICtrlCreateButton("Exit", 200, 145, 70, 30, $WS_GROUP)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_Hide)
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $b_exitserial
    GUISetState(@SW_Hide)
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $b_help
    ShellExecute($linkfaq)

    [/autoit] [autoit][/autoit] [autoit]

    Case $b_sendserial
    $serial = GUICtrlRead($part1)&"-"&GUICtrlRead($part2)&"-"&GUICtrlRead($part3)&"-"&GUICtrlRead($part4)&"-"&GUICtrlRead($part5)
    if(GUICtrlRead($i_wunschaccount) = "") Then
    MSGBOX(0, "Fehler", "Bitte tragen sie einen Account ein.")
    Elseif(GUICtrlRead($i_wunschpasswort) = "") Then
    MSGBOX(0, "Fehler", "Bitte tragen sie ein Passwort ein.")
    ElseIf(StringLen($serial) < 29) then
    MSGBOX(0, "Fehler", "Ihr Serial ist nicht lang genug. Bitte überprüfen sie Ihre Eingabe!")
    Else
    _mysql_registerserial($MySQLConn, $table, $serial)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_registerserial

    [/autoit] [autoit][/autoit] [autoit]

    Func _datenaendern()
    if($login = 0) Then ;Falls nicht eingeloggt
    MSGBOX(0, "Fehler", "Sie müssen sich zuerst einloggen.")
    Else
    $versionabfrage = _mysql_checkversion($MySQLConn, $table, GUICtrlRead($i_username)) ;Abfrage aus der
    if($versionabfrage = "V") Then
    $version = "Vollversion"
    Else
    $version = "Testversion"
    EndIf
    $datenaendern = GUICreate("Daten ändern", 386, 330, 192, 124)
    $l_title = GUICtrlCreateLabel("Userdaten", 98, 17, 201, 51)
    GUICtrlSetFont(-1, 24, 800, 0, "Nightclub BTN")
    $group1 = GUICtrlCreateGroup("Persönliche Daten", 24, 80, 337, 177)
    $l_account = GUICtrlCreateLabel("Account", 82, 104, 44, 17)
    $l_accountname = GUICtrlCreateLabel(GUICtrlRead($i_username), 136, 104, 32, 17)
    $l_passwort = GUICtrlCreateLabel("Passwort", 79, 128, 47, 17)
    $l_passwortwert = GUICtrlCreateLabel(GUICtrlRead($i_passwort), 136, 128, 22, 17)
    $l_version = GUICtrlCreateLabel("Version", 88, 176, 39, 17)
    $l_versionsart = GUICtrlCreateLabel($version, 136, 176, 59, 17)
    if($l_versionsart = "Vollversion") Then
    GUICtrlSetColor($l_versionsart, 0x006400)
    Else
    GUICtrlSetColor($l_versionsart, 0xFF0000)
    EndIf
    $l_zeit = GUICtrlCreateLabel("Noch gültig (Tage)", 32, 200, 92, 17)
    $l_zeitwert = GUICtrlCreateLabel("", 136, 200, 40, 17)
    $l_serialwert = GUICtrlCreateLabel("", 128, 224, 191, 17)
    $l_serial = GUICtrlCreateLabel("Serial", 96, 224, 30, 17)
    $b_passwort = GUICtrlCreateButton("Passwort ändern", 24, 280, 81, 33, $WS_GROUP)
    $b_registerserial2 = GUICtrlCreateButton("Serial registrieren", 128, 280, 97, 33, $WS_GROUP)
    $b_quit = GUICtrlCreateButton("Exit", 248, 280, 113, 33, $WS_GROUP)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_Hide) ;Verstecken
    ExitLoop ;Aus Schleife entfliehen

    [/autoit] [autoit][/autoit] [autoit]

    Case $b_registerserial2
    GUISetState(@SW_Hide); Verstecken
    _registerserial(); Serialregistrationsvorgang
    ExitLoop

    Case $b_quit
    GUISetState(@SW_Hide) ;Verstecken
    ExitLoop

    Case $b_passwort ;Passwortänderung
    $newpw = InPutBox("Neues Passwort", "Wie soll ihr neues Passwort lauten?")

    EndSwitch
    WEnd
    EndIf
    EndFunc ;==>_datenaendern

    [/autoit] [autoit][/autoit] [autoit]

    Func _vollversion()
    ShellExecute($linkvollversion)
    EndFunc ;==>_vollversion

    [/autoit] [autoit][/autoit] [autoit]

    Func _contact()
    $gui3 = GUICreate("Kontaktformular", 594, 443, 192, 124)
    $l_absender = GUICtrlCreateLabel("Absender", 40, 40, 49, 17)
    $group1 = GUICtrlCreateGroup("Kontaktformular", 16, 16, 561, 377)
    $l_betreff = GUICtrlCreateLabel("Betreff", 56, 106, 35, 17)
    $i_absender = GUICtrlCreateInput("", 96, 40, 137, 21)
    $l_absender = GuiCtrlCreateLabel("Email", 56,72,30,30)
    $i_email = GUICtrlCreateInput("", 96, 72, 137, 21)
    $i_betreff = GUICtrlCreateInput("", 96, 106, 137, 21)
    $i_nachricht = GUICtrlCreateEdit("", 40, 152, 513, 225)
    $b_send = GUICtrlCreateButton("Senden", 56, 397, 100, 33, $WS_GROUP)
    $b_reset = GUICtrlCreateButton("Reset", 246, 397, 100, 33, $WS_GROUP)
    $b_exit = GUICtrlCreateButton("Schließen", 432, 397, 97, 33, $WS_GROUP)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    ;Hier müssen die Daten der Email-Services noch eingegeben werden.

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_Hide)
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $b_exit
    GUISetState(@SW_Hide)
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $b_reset
    GUICtrlSetData($i_nachricht, "")

    [/autoit] [autoit][/autoit] [autoit]

    Case $b_send
    ;Hier muss die Email-Absendefunktion noch eingebaut werden.
    EndSwitch
    WEnd
    EndFunc ;==>_contact

    [/autoit] [autoit][/autoit] [autoit]

    Func _about()
    $_1 = GUICreate("About the Tool", 301, 208, 400, 50)
    $group1 = GUICtrlCreateGroup("", 10, 10, 177, 80)
    $group1text = GUICtrlCreateLabel("About the Tool", 32, 10, 72, 15)
    GUICtrlCreateLabel("SafeThat", 15, 25, 160, 12)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlCreateLabel("Tim 'Schrubber' Lübbe", 15, 45, 160, 15)
    GUICtrlSetColor(-1, 0xFF0000)
    $aboutlink = GUICtrlCreateLabel($link, 15, 65, 160, 15)
    GUICtrlSetColor(-1, 0x0000FF)
    $group2 = GUICtrlCreateGroup("", 10, 100, 285, 100)
    GUICtrlCreateLabel("Information", 30, 100, 52, 12)
    GUICtrlCreateLabel("Dieses Programm ist ein Schutztool, um Software durch"&@CRLF&"eine in der Datenbank eingetragene Zugriffsberechtigung"&@CRLF&"zu nutzen. Dieses Programm ermöglicht Ihnen, Ihr"&@CRLF&"Programm mit sog. Serials zu sperren, sodass nur"&@CRLF&"bestimmte Kunden mit einem gültigen Account Zugriff auf"&@CRLF&"die Software haben.", 13, 113, 276, 84)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_Hide)
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $aboutlink
    _openlink()
    EndSwitch
    WEnd
    EndFunc ;==>_about

    [/autoit] [autoit][/autoit] [autoit]

    Func _startTool()
    if($login = 0) Then
    MSGBOX(0, "Fehler", "Sie müssen sich zuerst einloggen.")
    Else
    ;/////////////////////////////////
    ;Hier komm das normale Tool rein!!
    ;/////////////////////////////////
    EndIf
    EndFunc ;==>_startTool

    [/autoit] [autoit][/autoit] [autoit]

    Func _mysql_checklogin($connection, $table, $account)
    _MySQL_Real_Query($connection, StringFormat("SELECT `Password` FROM `%s` WHERE `Account` = '%s'", $table, _MySQL_Real_Escape_String($connection, $account)))
    If @error Then
    Return SetError(-1, @error, '')
    Else
    Local $hResult = _MySQL_Store_Result($connection)
    Local $aReturn = _MySQL_Fetch_Row_StringArray($hResult)
    _MySQL_Free_Result($hResult)
    If UBound($aReturn) = 0 Then
    Return SetError(-2, @error, '')
    Else
    Return $aReturn[0]
    EndIf
    EndIf
    EndFunc ;==>_mysql_checklogin

    [/autoit] [autoit][/autoit] [autoit]

    Func _mysql_checkversion($connection, $table, $account)
    _MySQL_Real_Query($connection, StringFormat("SELECT `Version` FROM `%s` WHERE `Account` = '%s'", $table, _MySQL_Real_Escape_String($connection, $account)))
    If @error Then
    Return SetError(-1, @error, '')
    Else
    Local $hResult = _MySQL_Store_Result($connection)
    Local $aReturn = _MySQL_Fetch_Row_StringArray($hResult)
    _MySQL_Free_Result($hResult)
    If UBound($aReturn) = 0 Then
    Return SetError(-2, @error, '')
    Else
    Return $aReturn[0]
    EndIf
    EndIf
    EndFunc ;==>_mysql_checkversion

    [/autoit] [autoit][/autoit] [autoit]

    Func _mysql_checktime($connection, $table, $account)
    _MySQL_Real_Query($connection, StringFormat("SELECT `Time` FROM `%s` WHERE `Account` = '%s'", $table, _MySQL_Real_Escape_String($connection, $account)))
    If @error Then
    Return SetError(-1, @error, '')
    Else
    Local $hResult = _MySQL_Store_Result($connection)
    Local $aReturn = _MySQL_Fetch_Row_StringArray($hResult)
    _MySQL_Free_Result($hResult)
    If UBound($aReturn) = 0 Then
    Return SetError(-2, @error, '')
    Else
    Return $aReturn[0]
    EndIf
    EndIf
    EndFunc ;==>_mysql_checktime

    [/autoit] [autoit][/autoit] [autoit]

    Func _mysql_checkserial($connection, $table, $account)
    _MySQL_Real_Query($connection, StringFormat("SELECT `Serial` FROM `%s` WHERE `Account` = '%s'", $table, _MySQL_Real_Escape_String($connection, $account)))
    If @error Then
    Return SetError(-1, @error, '')
    Else
    Local $hResult = _MySQL_Store_Result($connection)
    Local $aReturn = _MySQL_Fetch_Row_StringArray($hResult)
    _MySQL_Free_Result($hResult)
    If UBound($aReturn) = 0 Then
    Return SetError(-2, @error, '')
    Else
    Return $aReturn[0]
    EndIf
    EndIf
    EndFunc ;==>_mysql_checkserial

    [/autoit] [autoit][/autoit] [autoit]

    Func _mysql_checkmail($connection, $table, $account)
    _MySQL_Real_Query($connection, StringFormat("SELECT `Mail` FROM `%s` WHERE `Account` = '%s'", $table, _MySQL_Real_Escape_String($connection, $account)))
    If @error Then
    Return SetError(-1, @error, '')
    Else
    Local $hResult = _MySQL_Store_Result($connection)
    Local $aReturn = _MySQL_Fetch_Row_StringArray($hResult)
    _MySQL_Free_Result($hResult)
    If UBound($aReturn) = 0 Then
    Return SetError(-2, @error, '')
    Else
    Return $aReturn[0]
    EndIf
    EndIf
    EndFunc ;==>_mysql_checkmail

    [/autoit] [autoit][/autoit] [autoit]

    Func _mysql_registerserial($connection, $table, $serial)
    $accabfrage = _MySQL_real_Query($connection, StringFormat("SELECT `Account` FROM `%s` WHERE `Account` = '%s';", $table, GUICTRLRead($i_wunschaccount)))
    MSGBOX(0, "", $accabfrage)
    $query = _MySQL_Real_Query($connection, StringFormat("SELECT `Account` FROM `%s` WHERE `Serial` = '%s';", $table, $serial))
    If $query Then Return SetError(1,0,0) ; Fehler bei der Abfrage

    [/autoit] [autoit][/autoit] [autoit]

    Local $pResult = _MySQL_Store_Result($connection)
    If $pResult Then
    Local $aResult = _MySQL_Fetch_Row_StringArray($pResult)
    _MySQL_Free_result($pResult)
    If Not IsArray($aResult) Then
    MSGBOX(0, "Fehler", "Dieser Serial ist nicht vorhanden. Bitte wenden sie sich an das Support-Team.")
    Return SetError(5,0,0) ; Keine Serial vorhanden
    ElseIf $aResult[0] <> '' Then
    MSGBOX(0, "Fehler", "Ihr Serial ist bereits benutzt. Bitte wenden sie sich an das Support-Team.")
    Return SetError(2,0,0) ; Es gibt bereits einen Account in der Datenbank
    EndIf
    Else
    MSGBOX(0, "Fehler", "Serial konnte nicht gefunden werden.")
    Return SetError(4,0,0) ; Keine Serial vorhanden
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $MYSQL_SUCCESS = _MySQL_Real_Query($connection, "UPDATE `"&$table&"` SET `Account` = '"&GUICtrlRead($i_wunschaccount)&"', `Password` = '"&GUICtrlRead($i_wunschpasswort)&"', `Lastcheck` = '"&@MDAY&@MON&@YEAR&"' WHERE `Serial` = '"&$serial&"';") Then
    ;$pResult = _MySQL_Store_Result($connection) ; kann man machen, ist hier aber nicht nötig so weit ich weiß
    ;If $pResult Then _MySQL_Free_result($pResult)
    MSGBOX(0, "Erfolgreich", "Sie haben den Serial erfolgreich registriert.")
    Return 1
    Else
    MSGBOX(0, "Fehler", "Es trat bei der Registration ein Fehler auf. Bitte probieren sie es später erneut.")
    Return SetError(3,0,0) ; Fehler beim UPDATE
    EndIf
    EndFunc ;==>_mysql_registerserial

    [/autoit] [autoit][/autoit] [autoit]

    Func _cleanup()
    If $MySQLConn Then _MySQL_Close($MySQLConn)
    _MySQL_EndLibrary()
    EndFunc ;==>_cleanup

    [/autoit] [autoit][/autoit] [autoit]

    Func _openlink()
    ShellExecute($link)
    EndFunc ;==>_openlink

    [/autoit] [autoit][/autoit] [autoit]

    Func _quit()
    Exit
    EndFunc

    [/autoit]


    Danke nochmal an progandy wegen der _MySQL UDF und den Hilfen ;)


    Es fehlt noch ein wenig an dem Script, das Design lässt einwenig zu wünschen über, aber es funktioniert, soweit es der bisherige Stand zulässt.

    Irgendwelche Bugs oä bitte melden.


    Was NICHT funktioniert:
    FAQ Seite
    Vollversion kaufen (Extra Internetseite)
    Kontaktabsende


    Wer weiterbauen will (Die Funktionen, die noch fehlen), möge dies tun und mir dann schicken, damit ichs einbauen kann.
    Bitte auch oben den Hinweis (Kommentarzeilen) NICHT löschen.


    Danke ;)


    (Bei Fragen, was wo verändert werden muss, bitte einfach melden.
    Auch die Online-Datenbank, die erstellt werden muss, werde ich hier heute Abend erst posten.

    Aber was ich sagen kann:


    Serial|Account|Passwort|Version|Time|Lastcheck
    Text29|Test20|Text20|Text1|Int|Text


    Lastcheck ist der Aufbau: DDMMYYYY
    Time wird immer vorher eingestellt und passend dem Serial gewählt (Halt vll 30 Tage Testversion oder 2Monate durchgehend)
    Version ist entweder ein "V" für Vollversion oder ein "T" für Testversion.
    Serial ist ein Text im Format: xxxxx-xxxxx-xxxxx-xxxxx-xxxxx (MIT BINDESTRICHE)


    Mit Grüßen,
    Schrubber

  • hätte da was kleines zu bemängeln :/
    decompiler -> man hat die db daten :(
    ich glaube es wäre besser wenn man post daten an eine inet seite sendet und von der seite das geprüft wird.

    ansonsten siehts ganz nice aus habs mir durchgelesen den source xD habe hier lw und so :P