Hilfe Wie Kann Ich Passwort Setzten An Ein Programm

  • Das Fenster, welches sich öffnet, steht in der Func Main() drin... (MsgBox(....)).

    Hier mal nen Code für mehrere Benutzer ... du kannst für jeden Benutzer eine andere Funktion ausführen wenn du willst.

    Spoiler anzeigen
    [autoit]

    Global $Count = 2

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

    For $i = 1 To 3
    $bena = InputBox("Benutzername","Bitte Benutzername eingeben");Benutzernameabfrage
    If @error = 1 Then Exit
    $pwda = InputBox("Passwort","Bitte Passwort eingeben","","*");PAsswortabfrage
    If @error = 1 Then Exit

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

    If $bena == "test" and $pwda == "asd" Then
    MsgBox(0,"Daten Richtig","Ok Daten sind Richtig")
    _main()
    ExitLoop
    ElseIf $bena == "asd" and $pwda == "test" Then
    MsgBox(0,"Daten Richtig","Ok Daten sind Richtig")
    _main()
    ExitLoop
    ElseIf $bena == "SiLenCa" and $pwda == "Testpasswort" Then
    MsgBox(0,"Daten Richtig","Ok Daten sind Richtig")
    _main()
    ExitLoop
    else
    Switch $Count
    Case 2
    MsgBox(0,"Falsch","Die Daten sind Falsch, du hast noch " & $Count & " versuche.")
    Case 1
    MsgBox(0,"Falsch","Die Daten sind Falsch, du hast noch " & $Count & " versuch.")
    Case 0
    MsgBox(0,"Falsch","Die Daten sind Falsch, du hast das Passwort 3mal falsch eingegeben." & @CRLF & "Programm wird Beendet.")
    EndSwitch
    $Count = $Count - 1
    EndIf
    Next

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

    Exit

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

    Func _main()
    ;Hier dein Programm
    EndFunc

    [/autoit]

    Edit: So, habe den Code nochmal überarbeitet. Ich weiss, es gibt einen befehl für mein Switch, konnte ihn leider nicht mehr in der Hilfe finden :)

    Einmal editiert, zuletzt von SiLenCa (23. April 2009 um 17:57)

    • Offizieller Beitrag

    Hier mal mein Script (hatte mal eine Funktion dafür geschrieben):

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GuiComboBoxEx.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiImageList.au3>
    #include <WindowsConstants.au3>

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

    ; Array mit den korrekten Daten (jeweils: 'Benutzername', 'Passwort')
    Global $aCorrect[5][2] = [['abcd', '123'],['efgh', '456'],['ijkl', '789'],['mnop', '012'],['qrst', '345']]

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

    Global $iTry = 0 ; Variable zum zählen der Versuche
    Do
    ; Mögliche Werte für die Sprache: 'Dansk|Deutsch|English|Français'
    Global $aInput = _LogInBox('Test', 3, 'Deutsch', False) ; Fenstertitel = "Test", Passwort = min. 3 Zeichen, Sprache = Deutsch
    If @error Then Exit ; wenn der Benutzer auf [Abbrechen] geklickt hat
    $iLoginID = -1
    For $i = 0 To UBound($aCorrect) - 1
    If $aInput[0] == $aCorrect[$i][0] And $aInput[1] == $aCorrect[$i][1] Then ; "==" Groß-/Kleinschreibung beachten!
    MsgBox(0, 'Test', 'Benutzername und Passwort sind richtig!')
    $iLoginID = $i
    ExitLoop
    EndIf
    Next
    If $iLoginID = -1 Then $iTry += MsgBox(0, $iTry + 1 & '. Versuch', 'Benutzername und/oder Passwort falsch!')
    If $iTry = 3 Then Exit ; nach 3 Versuchen beenden
    Until $iLoginID <> -1
    MsgBox(0, 'Test', 'Benutzer "' & $aCorrect[$iLoginID][0] & '" hat sich angemeldet!')

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

    ; Ab hier für das eigentliche Hauptprogramm
    ; \/

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

    #cs
    ======================================================================================================================
    Function Name: _LogInBox($sTitle [, $iMinLen [,$sStartLang [, $bPassVisible=True [, $iXPos=-1 [, $iYPos=-1]]]]])
    Description: Eingabefenster für Benutzername und Passwort
    Parameter(s): $sTitle = Fenstertitel
    optional: $iMinLen = Mindestlänge des Passworts (Standard = keine Mindestlänge)
    optional: $sStartLang = die Sprache auswählen (Standard = Deutsch)
    optional: $bPassVisible = True/False = Passwort sichtbar anzeigen Ja/Nein (Standard = Ja)
    optional: $iXPos = Horizontale Position des Fensters (Standard = zentriert)
    optional: $iYPos = Vertikale Position des Fensters (Standard = zentriert)
    Return Value(s): Array mit 2 Elementen (Benutzername und Passwort)
    Bei "Abbrechen" oder "Schließen" wird @error = 1
    Required: #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiComboBoxEx.au3>
    #include <GuiImageList.au3>
    #include <WindowsConstants.au3>
    Author(s): Oscar (http://www.autoit.de)
    ======================================================================================================================
    #ce
    Func _LogInBox($sTitle, $iMinLen = 0, $sStartLang = 'Deutsch', $bPassVisible = True, $iXPos = -1, $iYPos = -1)
    If $iMinLen < 0 Or $iMinLen = Default Then $iMinLen = 0
    If $sStartLang = -1 Or $sStartLang = Default Then $sStartLang = 'Deutsch'
    If $bPassVisible = -1 Or $bPassVisible = 'Default' Then $bPassVisible = True
    If $iXPos < 0 Or $iXPos = Default Or $iXPos > @DesktopWidth Then $iXPos = -1
    If $iYPos < 0 Or $iYPos = Default Or $iXPos > @DesktopHeight Then $iYPos = -1
    Local $hGui, $hUserLabel, $hUser, $hPass, $hCheck, $hLanguage, $hCancel, $hOk
    Local $iOpt, $sStyle, $sTmp, $aLanguage, $iLanguage, $hImage
    Local $iErr, $sFont = 'Arial', $aOut[2]
    Local $iBGColorInner = 0xBBBBBB, $iBGColorOuter = 0xEEEEEE
    Local $sIconsPath = @ScriptDir & '\icons.icl'
    Local $sLang = 'Dansk|Deutsch|English|Français'
    Local $aTranslation[4][7] = [ _
    ['Brugernavn:' & @CRLF & '(påkrævet)', _ ; Dänisch
    'Password:', _
    @CRLF & '(mindst ' & $iMinLen & ' tegn)', _
    '&Password synlige', _
    'Abonner...', _
    'Annuller', ''], _
    ['Benutzername:' & @CRLF & '(erforderlich)', _ ; Deutsch
    'Passwort:', _
    @CRLF & '(min. ' & $iMinLen & ' Zeichen)', _
    '&Passwort sichtbar', _
    'Anmelden...', _
    'Abbrechen', ''], _
    ['Username:' & @CRLF & '(needed)', _ ; Englisch
    'Password:', _
    @CRLF & '(min. ' & $iMinLen & ' Chars)', _
    '&Password visible', _
    'Log in...', _
    'Cancel', ''], _
    ['Nom:' & @CRLF & '(nécessaire)', _ ; Französisch
    'mot de passe:', _
    @CRLF & '(min. ' & $iMinLen & ' lettre)', _
    '&mot de passe visible', _
    'déclarer...', _
    'Annuler', '']]
    $aLanguage = StringSplit($sLang, '|')
    For $i = 1 To $aLanguage[0]
    If $sStartLang = $aLanguage[$i] Then $iLanguage = $i - 1
    Next
    $iOpt = Opt('GUIOnEventMode', 0)
    $hGui = GUICreate($sTitle, 343, 200, $iXPos, $iYPos, BitOR($WS_SYSMENU, $WS_VISIBLE))
    GUISetIcon(@SystemDir & '\shell32.dll', -212)
    GUISetBkColor($iBGColorOuter)
    GUICtrlCreateLabel('', 5, 5, 325, 120, -1, $WS_EX_CLIENTEDGE)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetBkColor(-1, $iBGColorInner)
    $hUserLabel = GUICtrlCreateLabel($aTranslation[$iLanguage][0], 12, 17, 90, 35)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    GUICtrlSetBkColor(-1, $iBGColorInner)
    $hUser = GUICtrlCreateInput('', 115, 20, 205, 25)
    GUICtrlSetFont(-1, 10, 400, 0, $sFont)
    If $iMinLen > 0 Then
    $aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1] & $aTranslation[$iLanguage][2]
    Else
    $aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1]
    EndIf
    $hPassLabel = GUICtrlCreateLabel($aTranslation[$iLanguage][6], 12, 63 + ($iMinLen = 0) * 6, 100, 35)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    GUICtrlSetBkColor(-1, $iBGColorInner)
    $hPass = GUICtrlCreateInput('', 115, 65, 205, 25)
    GUICtrlSetFont(-1, 10, 400, 0, $sFont)
    GUICtrlSendMsg($hPass, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
    $hCheck = GUICtrlCreateCheckbox($aTranslation[$iLanguage][3], 120, 92, 200, 25)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    GUICtrlSetBkColor(-1, $iBGColorInner)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $hLanguage = _GUICtrlComboBoxEx_Create($hGui, '', 10, 135, 110, 140, $CBS_DROPDOWNLIST)
    If FileExists($sIconsPath) Then
    $hImage = _GUIImageList_Create(32, 20, 5, 4, 4)
    _GUIImageList_AddIcon($hImage, $sIconsPath, 0, True)
    _GUIImageList_AddIcon($hImage, $sIconsPath, 1, True)
    _GUIImageList_AddIcon($hImage, $sIconsPath, 2, True)
    _GUIImageList_AddIcon($hImage, $sIconsPath, 3, True)
    _GUICtrlComboBoxEx_SetImageList($hLanguage, $hImage)
    EndIf
    _GUICtrlComboBoxEx_SetItemHeight($hLanguage, 0, 25)
    For $i = 1 To $aLanguage[0]
    _GUICtrlComboBoxEx_AddString($hLanguage, $aLanguage[$i], $i-1, $i-1)
    Next
    _GUICtrlComboBoxEx_SetCurSel($hLanguage, $iLanguage)
    $hCancel = GUICtrlCreateButton($aTranslation[$iLanguage][5], 250, 135, 80, 25)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    $hOk = GUICtrlCreateButton($aTranslation[$iLanguage][4], 160, 135, 80, 25, $BS_DEFPUSHBUTTON)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    GUICtrlSetState(-1, $GUI_DISABLE)
    WinSetOnTop($hGui, '', 1)
    GUICtrlSetState($hUser, $GUI_FOCUS)
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE, $hCancel
    $iErr = 1
    ExitLoop
    Case $hCheck
    GUICtrlSendMsg($hPass, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($hPass, $GUI_FOCUS)
    Case $hOk
    $aOut[0] = GUICtrlRead($hUser)
    $aOut[1] = GUICtrlRead($hPass)
    ExitLoop
    EndSwitch
    If Not _GUICtrlComboBoxEx_GetDroppedState($hLanguage) Then
    If _GUICtrlComboBoxEx_GetCurSel($hLanguage) <> $iLanguage Then
    $iLanguage = _GUICtrlComboBoxEx_GetCurSel($hLanguage)
    If $iMinLen > 0 Then
    $aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1] & $aTranslation[$iLanguage][2]
    Else
    $aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1]
    EndIf
    GUICtrlSetData($hUserLabel, $aTranslation[$iLanguage][0])
    GUICtrlSetData($hPassLabel, $aTranslation[$iLanguage][6])
    GUICtrlSetData($hCheck, $aTranslation[$iLanguage][3])
    GUICtrlSetData($hCancel, $aTranslation[$iLanguage][5])
    GUICtrlSetData($hOk, $aTranslation[$iLanguage][4])
    GUICtrlSetState($hUser, $GUI_FOCUS)
    EndIf
    EndIf
    If GUICtrlRead($hUser) <> '' And StringLen(GUICtrlRead($hPass)) >= $iMinLen Then
    If BitAND(GUICtrlGetState($hOk), $GUI_DISABLE) Then GUICtrlSetState($hOk, $GUI_ENABLE)
    Else
    If BitAND(GUICtrlGetState($hOk), $GUI_ENABLE) Then GUICtrlSetState($hOk, $GUI_DISABLE)
    EndIf
    WEnd
    Opt('GUIOnEventMode', $iOpt)
    GUIDelete($hGui)
    Return SetError($iErr, 0, $aOut)
    EndFunc ;==>_LogInBox

    [/autoit]

    Hiweis: Für die Anzeige der Landes-Flaggen muss sich die Datei "icons.icl" aus dem Anhang im Scriptverzeichnis befinden!

  • nein wenn ich die passwörter und alles eingebe schlisst es von selbst und mein programm geht nicht auf