AutoIt trägt fehlerhaft ein..

  • Hallo,
    ich habe dieses Registrierungstool bisher:

    [autoit]

    #include<GUIConstantsEx.au3>

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

    Dim $minmax

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

    $1_GUI = GuiCreate("Registriervorgang", 485, 68, -1, -1)
    $Label_1 = GuiCtrlCreateLabel("Benutzername:", 10, 14, 130, 20)
    $Button_1 = GuiCtrlCreateButton("Diesen Benutzernamen wählen. (8-16 Zeichen) (A-Z | 0-9)", 10, 40, 465, 20)
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    $Input_1 = GuiCtrlCreateInput("", 100, 10, 375, 20)

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

    GUISetState(@SW_SHOW, $1_GUI)

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

    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop

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

    Case $msg =$Button_1
    Exit

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

    EndSelect

    ; Prüfungsstart: prüft ob die Länge des Input_1 mehr als 2 und weniger als 6 beträgt.
    $1minimax = StringLen(GUICtrlRead($Input_1))
    If $minmax <> $1minimax Then
    If $1minimax >7 And $1minimax < 17 Then
    GUICtrlSetState($Button_1, $GUI_ENABLE)
    Else
    GUICtrlSetState($Button_1, $GUI_DIsABLE)
    EndIf
    $minmax = $1minimax
    EndIf
    ; Prüfungsende
    Iniwrite(@scriptdir&"\INI\Registrierung.ini", "Registrierung", "Accountname", $Input_1)
    WEnd
    Exit

    [/autoit]

    Nun trägt er aber in der Ini ein, dass als Accountname "5" eingegeben wurde, egal was wirklich eingegeben wird..
    Wie kann ich's beheben ..

    und wie kann ich einbauen, dass er nur Zeichen von a-z, A-Z, 0-9 zulässt? :D

    • Offizieller Beitrag

    GuiCtrlRead($Input) ;)

    Wegen der Limitierung quäl mal die Suche - wurde mehrfach ausgiebig behandelt.

    Edit: Will mal nicht so sein: Länge und Zeichen in einem Ritt:

    [autoit]

    If Not StringRegExp(GuiCtrlRead($Input), '[a-zA-Z0-9]{8,16}')) Then ConsoleWrite('Machs noch einmal, Sam' & @CRLF)

    [/autoit]

    Edit2: s. korrigiertes Pattern Post #4

  • BugFix Das scheint bei mir nicht korrekt zu funktionieren...
    Beispiel:

    [autoit]

    If Not StringRegExp('.._üsijsissss', '[a-zA-Z0-9]{8,16}') Then ConsoleWrite('Machs noch einmal, Sam' & @CRLF)

    [/autoit]


    Hier wird so gut wie alles als gültig anerkannt.

  • [autoit]

    #include<GUIConstantsEx.au3>

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

    Dim $minmax

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

    $1_GUI = GuiCreate("Registriervorgang", 485, 68, -1, -1)
    $Label_1 = GuiCtrlCreateLabel("Benutzername:", 10, 14, 130, 20)
    $Button_1 = GuiCtrlCreateButton("Diesen Benutzernamen wählen. (8-16 Zeichen) (A-Z | 0-9)", 10, 40, 465, 20)
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    $Input_1 = GuiCtrlCreateInput("", 100, 10, 375, 20)

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

    GUISetState(@SW_SHOW, $1_GUI)

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

    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop

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

    Case $msg =$Button_1
    Exit

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

    EndSelect

    If Not StringRegExp('.._üsijsissss', '[a-zA-Z0-9]{8,16}') Then ConsoleWrite('Machs noch einmal, Sam' & @CRLF)
    Iniwrite(@scriptdir&"\INI\Registrierung.ini", "Registrierung", "Accountname", $Input_1)

    WEnd

    [/autoit]

    So, oder?
    Er erkennt nun nichtma mehr, wenn 8+ Zeichen eingegeben wurden..

  • Anfang und Ende einer Zeichenkette müssen in RegExp maskiert sein, die richtige Syntax (für 8-16 Zeichen, A-Z, a-z, 0-9) lautet:

    [autoit]

    StringRegExp("Nutzername", "^([A-Za-z0-9]{8,16})$")

    [/autoit]
    • Offizieller Beitrag
    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    Global $Enable = False
    Dim $minmax

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

    $1_GUI = GUICreate("Registriervorgang", 485, 68, -1, -1)
    $Label_1 = GUICtrlCreateLabel("Benutzername:", 10, 14, 130, 20)
    $Button_1 = GUICtrlCreateButton("Diesen Benutzernamen wählen. (8-16 Zeichen) (A-Z | 0-9)", 10, 40, 465, 20)
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    $Input_1 = GUICtrlCreateInput("", 100, 10, 375, 20)

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

    GUISetState(@SW_SHOW, $1_GUI)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_1
    IniWrite(@ScriptDir & "\INI\Registrierung.ini", "Registrierung", "Accountname", GUICtrlRead($Input_1))
    Exit
    EndSelect
    If StringRegExp(GUICtrlRead($Input_1), "^([A-Za-z0-9]{8,16})$") Then
    If Not $Enable Then GUICtrlSetState($Button_1, $GUI_ENABLE)
    $Enable = True
    Else
    If $Enable Then GUICtrlSetState($Button_1, $GUI_DISABLE)
    $Enable = False
    EndIf
    WEnd

    [/autoit]

    Den Button kann man nur bei einer Gültigen Eingabe drücken.

    Edit und hier nochmal mit Pattern von BugFix:

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    Global $Enable = False
    Dim $minmax

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

    $1_GUI = GUICreate("Registriervorgang", 485, 68, -1, -1)
    $Label_1 = GUICtrlCreateLabel("Benutzername:", 10, 14, 130, 20)
    $Button_1 = GUICtrlCreateButton("Diesen Benutzernamen wählen. (8-16 Zeichen) (A-Z | 0-9)", 10, 40, 465, 20)
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    $Input_1 = GUICtrlCreateInput("", 100, 10, 375, 20)

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

    GUISetState(@SW_SHOW, $1_GUI)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_1
    IniWrite(@ScriptDir & "\INI\Registrierung.ini", "Registrierung", "Accountname", GUICtrlRead($Input_1))
    Exit
    EndSelect
    If StringRegExp(GUICtrlRead($Input_1), "\A([a-zA-Z0-9]{8,16})\z") Then
    If Not $Enable Then GUICtrlSetState($Button_1, $GUI_ENABLE)
    $Enable = True
    Else
    If $Enable Then GUICtrlSetState($Button_1, $GUI_DISABLE)
    $Enable = False
    EndIf
    WEnd

    [/autoit]
  • Danke Raupi & BugFix & alle anderen :)

    Nun noch eine Frage..könnte ma jmd in das Tool..

    [autoit]

    #include<GUIConstantsEx.au3>
    Global $Enable = False
    Dim $minmax

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

    $1_GUI = GUICreate("Registriervorgang", 485, 68, -1, -1)
    $Label_1 = GUICtrlCreateLabel("Benutzername:", 10, 14, 130, 20)
    $Button_1 = GUICtrlCreateButton("Diesen Benutzernamen wählen. (8-16 Zeichen) (A-Z | 0-9)", 10, 40, 465, 20)
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    $Input_1 = GUICtrlCreateInput("", 100, 10, 375, 20)

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

    GUISetState(@SW_SHOW, $1_GUI)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_1
    IniWrite(@ScriptDir & "\INI\Registrierung.ini", "Registrierung", "Accountname", GUICtrlRead($Input_1))
    Exit
    EndSelect
    If StringRegExp(GUICtrlRead($Input_1), "\A([a-zA-Z0-9]{8,16})\z") Then
    If Not $Enable Then GUICtrlSetState($Button_1, $GUI_ENABLE)
    $Enable = True
    Else
    If $Enable Then GUICtrlSetState($Button_1, $GUI_DISABLE)
    $Enable = False
    EndIf
    WEnd

    [/autoit]

    ..so bearbeiten, dass der danach auch das gleiche mit Name usw. abfragt?
    Also nochmal so ein Fenster mit "Name", "Passwort", usw.
    Wie kann man das noch integrieren..

    • Offizieller Beitrag

    Meinst du sowas?

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>

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

    $1_GUI = GUICreate("Registriervorgang", 485, 150, -1, -1)
    GUICtrlCreateLabel("Benutzername:", 10, 14, 130, 20)
    GUICtrlCreateLabel("Name:", 10, 44, 130, 20)
    GUICtrlCreateLabel("Passwort:", 10, 74, 130, 20)
    $Input_1 = GUICtrlCreateInput("", 100, 10, 375, 20)
    $L1 = GUICtrlCreateLabel('', 90, 14, 10, 20)
    $Input_2 = GUICtrlCreateInput("", 100, 40, 375, 20)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $L2 = GUICtrlCreateLabel('', 90, 44, 10, 20)
    $Input_3 = GUICtrlCreateInput("", 100, 70, 375, 20, $ES_PASSWORD)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $L3 = GUICtrlCreateLabel('', 90, 74, 10, 20)
    $Button_1 = GUICtrlCreateButton("Diesen Einstellungen wählen: 8-16 Zeichen [A-Z | 0-9]", 10, 107, 465, 20)
    GUICtrlSetState($Button_1, $GUI_DISABLE)

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

    GUISetState(@SW_SHOW, $1_GUI)

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

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_1
    ; IniWrite(@ScriptDir & "\INI\Registrierung.ini", "Registrierung", "Accountname", GUICtrlRead($Input_1))
    ConsoleWrite(GUICtrlRead($Input_1) & @CRLF)
    ConsoleWrite(GUICtrlRead($Input_2) & @CRLF)
    ConsoleWrite(GUICtrlRead($Input_3) & @CRLF)
    Exit
    EndSelect
    WEnd

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $iCode
    Case $EN_CHANGE
    Switch $hWndFrom
    Case GUICtrlGetHandle($Input_1)
    If StringRegExp(GUICtrlRead($Input_1), "\A([a-zA-Z0-9]{8,16})\z") Then
    GUICtrlSetState($Input_2, $GUI_ENABLE)
    GUICtrlSetData($L1, '*')
    Else
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    GUICtrlSetData($L1, '')
    EndIf
    Case GUICtrlGetHandle($Input_2)
    If StringRegExp(GUICtrlRead($Input_2), "\A([a-zA-Z0-9]{8,16})\z") Then
    GUICtrlSetState($Input_3, $GUI_ENABLE)
    GUICtrlSetData($L2, '*')
    Else
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    GUICtrlSetData($L2, '')
    EndIf
    Case GUICtrlGetHandle($Input_3)
    If StringRegExp(GUICtrlRead($Input_3), "\A([a-zA-Z0-9]{8,16})\z") Then
    GUICtrlSetState($Button_1, $GUI_ENABLE)
    GUICtrlSetData($L3, '*')
    Else
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    GUICtrlSetData($L3, '')
    EndIf
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • Perfekt, danke :)
    Noch was :D

    Wenn man das Input-Feld bissl kürzt, könnte man noch n "Hilfe-Icon" rechts daneben einfügen? Mit der Funktion, dass, wenn man drüber geht, ein Text erscheint..?

    Thx

    • Offizieller Beitrag

    Ja das geht, schau dir mal

    [autoit]

    GUICtrlCreateIcon

    [/autoit]


    und

    [autoit]

    GUICtrlSetTip

    [/autoit]


    in der Hilfe an.

    Wenn du bei dem Namen Vor- u. Zumnamen eingegeben haben möchteste, sollteste du im Beispiel von BugFix

    [autoit]

    If StringRegExp(GUICtrlRead($Input_2), "\A([ a-zA-Z0-9]{8,16})\z") Then

    [/autoit]


    die Zeile 56 mit der oberen austauschen.
    Damit kann man auch ein oder mehrere Leerzeichen einfügen, wäre sinnvoll bei einem Namen.

  • Danke, hat geklappt :)

    Noch eine Frage zum a-Z, 0-9: Wie bind ich dort noch das "@" & "." (Punkt) ein, für die E-Mail-Adresse, bei mir kommts nie so raus wie ich's will :pinch:

    • Offizieller Beitrag
    [autoit]

    If StringRegExp(GUICtrlRead($Input_2), "\A([ \.@&a-zA-Z0-9]{8,16})\z") Then

    [/autoit]
    • Offizieller Beitrag

    Gut zu wissen, hab ich aber auch nicht nachgelesen. Arbeite zu wenig mit Zeichenklassen :D

    Eine Zeichenklasse wie [a-zA-Z0-9] würde ich mit \w abkürzen, gesch... auf den Unterstrich :D

    Edit für eine Emailadresse würde ich eher sowas bevorzugen:
    '\A([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4})\z'
    Ups, hab glatt die Kleinbuchstaben vergessen. :D
    '\A([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})\z'

  • '\A([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4})\z'

    Geht nicht 8|

    Scriptcode:

    [autoit]

    #include<GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>

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

    $1_GUI = GUICreate("Registriervorgang", 485, 215, -1, -1)
    GUICtrlCreateLabel("Benutzername:", 10, 14, 130, 20)
    GUICtrlCreateLabel("Name:", 10, 44, 130, 20)
    GUICtrlCreateLabel("Passwort:", 10, 74, 130, 20)
    GUICtrlCreateLabel("Passwort wdh.:", 10, 104, 130, 20)
    GUICtrlCreateLabel("E-Mail:", 10, 134, 130, 20)
    $Input_1 = GUICtrlCreateInput("", 100, 10, 355, 20)
    $L1 = GUICtrlCreateLabel('', 90, 14, 10, 20)
    $Input_2 = GUICtrlCreateInput("", 100, 40, 355, 20)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $L2 = GUICtrlCreateLabel('', 90, 44, 10, 20)
    $Input_3 = GUICtrlCreateInput("", 100, 70, 355, 20, $ES_PASSWORD)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $L3 = GUICtrlCreateLabel('', 90, 74, 10, 20)
    $Button_1 = GUICtrlCreateButton("Diese Einstellungen wählen", 10, 167, 465, 20)
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    $Input_4 = GUICtrlCreateInput("", 100, 100, 355, 20, $ES_PASSWORD)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $L4 = GUICtrlCreateLabel("", 90, 104, 10, 20)
    $Input_5 = GUICtrlCreateInput("", 100, 130, 355, 20)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $L5 = GUICtrlCreateLabel("", 90, 134, 10, 20)
    $Img_Nr1 = GUICtrlCreateIcon (@WindowsDir & "\cursors\aero_unavail.cur", -1, 460, 11)
    $Img_Nr2 = GUICtrlCreateIcon (@WindowsDir & "\cursors\aero_unavail.cur", -1, 460, 41)
    $Img_Nr3 = GUICtrlCreateIcon (@WindowsDir & "\cursors\aero_unavail.cur", -1, 460, 71)
    $Img_Nr4 = GUICtrlCreateIcon (@WindowsDir & "\cursors\aero_unavail.cur", -1, 460, 101)
    $Img_Nr5 = GUICtrlCreateIcon (@WindowsDir & "\cursors\aero_unavail.cur", -1, 460, 131)
    GUICtrlSetTip ($Img_Nr1, "8-16 Zeichen, a-Z", "Bitte gebe hier deinen gewünschten Benutzer-/Loginnamen ein.")
    GUICtrlSetTip ($Img_Nr2, "3-20 Zeichen, a-Z", "Bitte gebe hier deinen Namen ein.")
    GUICtrlSetTip ($Img_Nr3, "8-16 Zeichen, a-Z", "Bitte gebe hier dein gewünschtes Passwort ein.")
    GUICtrlSetTip ($Img_Nr4, "8-16 Zeichen, a-Z", "Bitte gebe dein Passwort erneut ein.")
    GUICTrlSetTip ($Img_Nr5, "Max. 40 Zeichen", "Bitte gebe hier deine E-Mail-Adresse ein.")
    GUICtrlCreateLabel ("(c) by TryiTNoW | eDg Center 2011 | Registrierung | http://edg-servers.net", 91, 200)

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

    GUISetState(@SW_SHOW, $1_GUI)

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

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_1
    ; IniWrite(@ScriptDir & "\INI\Registrierung.ini", "Registrierung", "Accountname", GUICtrlRead($Input_1))
    ConsoleWrite(GUICtrlRead($Input_1) & @CRLF)
    ConsoleWrite(GUICtrlRead($Input_2) & @CRLF)
    ConsoleWrite(GUICtrlRead($Input_3) & @CRLF)
    Exit
    EndSelect
    WEnd

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $iCode
    Case $EN_CHANGE
    Switch $hWndFrom
    Case GUICtrlGetHandle($Input_1)
    If StringRegExp(GUICtrlRead($Input_1), "\A([a-zA-Z0-9]{8,16})\z") Then
    GUICtrlSetState($Input_2, $GUI_ENABLE)
    GUICtrlSetData($L1, '*')
    GUICtrlDelete ($Img_Nr1)
    Else
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    GUICtrlSetData($L1, '')
    EndIf
    IniWrite (@scriptdir & "\INI\Registrierung.ini", "Benutzername", "Benutzername", GuiCtrlRead($Input_1))
    Case GUICtrlGetHandle($Input_2)
    If StringRegExp(GUICtrlRead($Input_2), "\A([a-zA-Z0-9]{3,20})\z") Then
    GUICtrlSetState($Input_3, $GUI_ENABLE)
    GUICtrlSetData($L2, '*')
    GUICtrlDelete ($Img_Nr2)
    Else
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    GUICtrlSetData($L2, '')
    EndIf
    Case GUICtrlGetHandle($Input_3)
    If StringRegExp(GUICtrlRead($Input_3), "\A([a-zA-Z0-9]{8,16})\z") Then
    GUICtrlSetState($Input_4, $GUI_ENABLE)
    GUICtrlSetData($L3, '*')
    GUICtrlDelete ($Img_Nr3)
    Else
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    GUICtrlSetData($L3, '')
    EndIf
    Case GUICtrlGetHandle($Input_4)
    If StringRegExp(GUICtrlRead($Input_4), "\A([a-zA-Z0-9]{8,16})\z") Then
    GUICtrlSetState($Input_5, $GUI_ENABLE)
    GUICtrlSetData($L4, '*')
    GUICtrlDelete ($Img_Nr4)
    Else
    GUICtrlSetState($Input_5, $GUI_DISABLE)
    GUICtrlSetData($L4, '')
    EndIf
    Case GUICtrlGetHandle($Input_5)
    If StringRegExp(GUICtrlRead($Input_5), '\A([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4})\z') Then
    GUICtrlSetState($Button_1, $GUI_ENABLE)
    GUICtrlSetData($L5, '*')
    GUICtrlDelete ($Img_Nr5)
    Else
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    GUICtrlSetData($L5, '')
    EndIf
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]

    Meine Mail Adresse z.B. akzeptiert er nicht.

    • Offizieller Beitrag

    Ups, kleinbuchstaben vergessen.
    '\A([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})\z'

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>

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

    $1_GUI = GUICreate("Registriervorgang", 485, 215, -1, -1)
    GUICtrlCreateLabel("Benutzername:", 10, 14, 130, 20)
    GUICtrlCreateLabel("Name:", 10, 44, 130, 20)
    GUICtrlCreateLabel("Passwort:", 10, 74, 130, 20)
    GUICtrlCreateLabel("Passwort wdh.:", 10, 104, 130, 20)
    GUICtrlCreateLabel("E-Mail:", 10, 134, 130, 20)
    $Input_1 = GUICtrlCreateInput("", 100, 10, 355, 20)
    $L1 = GUICtrlCreateLabel('', 90, 14, 10, 20)
    $Input_2 = GUICtrlCreateInput("", 100, 40, 355, 20)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $L2 = GUICtrlCreateLabel('', 90, 44, 10, 20)
    $Input_3 = GUICtrlCreateInput("", 100, 70, 355, 20, $ES_PASSWORD)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $L3 = GUICtrlCreateLabel('', 90, 74, 10, 20)
    $Button_1 = GUICtrlCreateButton("Diese Einstellungen wählen", 10, 167, 465, 20)
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    $Input_4 = GUICtrlCreateInput("", 100, 100, 355, 20, $ES_PASSWORD)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $L4 = GUICtrlCreateLabel("", 90, 104, 10, 20)
    $Input_5 = GUICtrlCreateInput("", 100, 130, 355, 20)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $L5 = GUICtrlCreateLabel("", 90, 134, 10, 20)
    $Img_Nr1 = GUICtrlCreateIcon (@WindowsDir & "\cursors\aero_unavail.cur", -1, 460, 11)
    $Img_Nr2 = GUICtrlCreateIcon (@WindowsDir & "\cursors\aero_unavail.cur", -1, 460, 41)
    $Img_Nr3 = GUICtrlCreateIcon (@WindowsDir & "\cursors\aero_unavail.cur", -1, 460, 71)
    $Img_Nr4 = GUICtrlCreateIcon (@WindowsDir & "\cursors\aero_unavail.cur", -1, 460, 101)
    $Img_Nr5 = GUICtrlCreateIcon (@WindowsDir & "\cursors\aero_unavail.cur", -1, 460, 131)
    GUICtrlSetTip ($Img_Nr1, "8-16 Zeichen, a-Z", "Bitte gebe hier deinen gewünschten Benutzer-/Loginnamen ein.")
    GUICtrlSetTip ($Img_Nr2, "3-20 Zeichen, a-Z", "Bitte gebe hier deinen Namen ein.")
    GUICtrlSetTip ($Img_Nr3, "8-16 Zeichen, a-Z", "Bitte gebe hier dein gewünschtes Passwort ein.")
    GUICtrlSetTip ($Img_Nr4, "8-16 Zeichen, a-Z", "Bitte gebe dein Passwort erneut ein.")
    GUICTrlSetTip ($Img_Nr5, "Max. 40 Zeichen", "Bitte gebe hier deine E-Mail-Adresse ein.")
    GUICtrlCreateLabel ("(c) by TryiTNoW | eDg Center 2011 | Registrierung | http://edg-servers.net", 91, 200)

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

    GUISetState(@SW_SHOW, $1_GUI)

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

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_1
    ; IniWrite(@ScriptDir & "\INI\Registrierung.ini", "Registrierung", "Accountname", GUICtrlRead($Input_1))
    ConsoleWrite(GUICtrlRead($Input_1) & @CRLF)
    ConsoleWrite(GUICtrlRead($Input_2) & @CRLF)
    ConsoleWrite(GUICtrlRead($Input_3) & @CRLF)
    Exit
    EndSelect
    WEnd

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $iCode
    Case $EN_CHANGE
    Switch $hWndFrom
    Case GUICtrlGetHandle($Input_1)
    If StringRegExp(GUICtrlRead($Input_1), "\A([a-zA-Z0-9]{8,16})\z") Then
    GUICtrlSetState($Input_2, $GUI_ENABLE)
    GUICtrlSetData($L1, '*')
    GUICtrlDelete ($Img_Nr1)
    Else
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    GUICtrlSetData($L1, '')
    EndIf
    IniWrite (@scriptdir & "\INI\Registrierung.ini", "Benutzername", "Benutzername", GuiCtrlRead($Input_1))
    Case GUICtrlGetHandle($Input_2)
    If StringRegExp(GUICtrlRead($Input_2), "\A([a-zA-Z0-9]{3,20})\z") Then
    GUICtrlSetState($Input_3, $GUI_ENABLE)
    GUICtrlSetData($L2, '*')
    GUICtrlDelete ($Img_Nr2)
    Else
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    GUICtrlSetData($L2, '')
    EndIf
    Case GUICtrlGetHandle($Input_3)
    If StringRegExp(GUICtrlRead($Input_3), "\A([a-zA-Z0-9]{8,16})\z") Then
    GUICtrlSetState($Input_4, $GUI_ENABLE)
    GUICtrlSetData($L3, '*')
    GUICtrlDelete ($Img_Nr3)
    Else
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    GUICtrlSetData($L3, '')
    EndIf
    Case GUICtrlGetHandle($Input_4)
    If StringRegExp(GUICtrlRead($Input_4), "\A([a-zA-Z0-9]{8,16})\z") Then
    GUICtrlSetState($Input_5, $GUI_ENABLE)
    GUICtrlSetData($L4, '*')
    GUICtrlDelete ($Img_Nr4)
    Else
    GUICtrlSetState($Input_5, $GUI_DISABLE)
    GUICtrlSetData($L4, '')
    EndIf
    Case GUICtrlGetHandle($Input_5)
    If StringRegExp(GUICtrlRead($Input_5), '\A([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})\z') Then
    GUICtrlSetState($Button_1, $GUI_ENABLE)
    GUICtrlSetData($L5, '*')
    GUICtrlDelete ($Img_Nr5)
    Else
    GUICtrlSetState($Button_1, $GUI_DISABLE)
    GUICtrlSetData($L5, '')
    EndIf
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • okay, super. Danke.

    Noch was..:D

    Es wird ja das Icon gezeigt. Aber wenn man dann die Vorraussetzungen doch nimma hat, kommt das Icon nicht back..Wie kann ich das noch einrichten..

    Dann ists fertig :)

    • Offizieller Beitrag

    Dann verstecke die Icons nur

    [autoit]

    GUICtrlSetState($ctrlId,$GUI_HIDE)

    [/autoit]


    Anzeigen:

    [autoit]

    GUICtrlSetState($ctrlId,$GUI_SHOW)

    [/autoit]