• Offizieller Beitrag

    Diese Funktion bietet die Möglichkeit einen Benutzernamen und ein Passwort (im Stil einer MessageBox) vom Anwender eingeben zu lassen.
    Besonderheiten:
    - Solange eines der beiden Felder leer ist, ist der "Anmelden..."-Button disabled.
    - Der Anwender kann auswählen, ob das Passwort sichtbar angezeigt werden soll oder nicht.
    - Das Fenster ist immer im Vordergrund.
    - Sprache auswählbar (Dänisch|Deutsch|Englisch|Französisch)
    - Mindestlänge für das Passwort

    17.01.09 Script aufgeräumt! Passwort-Input wird nicht mehr neu erstellt beim Checkbox-Wechsel "Passwort sichtbar". Danke Raupi!

    25.04.09 Beispiel ausgebaut!
    Mit dem Beispielscript kann man ein Programm schützen, indem nur vorher festgelegte Benutzer das Programm nutzen dürfen. Diese müssen sich beim Programmstart mit Benutzername und Passwort authentifizieren.
    Das Besondere dabei ist, dass man nicht die Passwörter selbst im Programm ablegt, sondern nur die MD5-Hashwerte. Dazu benutze ich die MD5-UDF aus dem englischen Forum.
    Ich habe das Beispiel mal ausführlich kommentiert. Hoffe, das ist verständlich. Ansonsten, einfach fragen...

    In dem ZIP-Archiv aus dem Anhang befindet sich das Script sowie eine Datei "icons.icl", in der sich die vier Landesflaggen befinden. Diese Datei muss sich im Scriptverzeichnis befinden, wenn die Flaggen angezeigt werden sollen.

    Screenshot:
    NeroCMD.AutoBurner.V2.exe

  • Hallo Oscar.

    Sichtbar sehr schön.

    Nur wie nutze ich es zum Beispiel um ein Script zu starten (z. B. eine MsgBog), wenn Benutzername und Passwort richtig sind.

    Für die User, die den Quelltext nicht so gut verstehen, wäre da sicherlich ein erklärendes Beispiel nötig und dann das ganze ohne eine Ausgabe in eine List?!

    LG, Crazy-A.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Hier mal ein Beispiel:

    Spoiler anzeigen
    [autoit]


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

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

    #include<Array.au3>
    Global $aCorrect[2] = ['Crazy-A', '12345678']

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

    Global $array = _LogInBox('Test', 8, 'English') ; für die Sprache: Deutsch|German|Englisch|English
    If Not @error Then
    If $array[0] == $aCorrect[0] And $array[1] == $aCorrect[1] Then ; Groß-/Kleinschreibung beachten!
    MsgBox(0, 'Test', 'Benutzername und Passwort sind richtig!')
    Else
    MsgBox(0, 'Test', 'Benutzername und/oder Passwort falsch!')
    EndIf
    EndIf

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

    #cs
    ===========================================================================================================
    Function Name: _LogInBox($title [, $minLen [,$StartLang [, $bPassVisible=False [, $x=-1 [, $y=-1]]]]])
    Description: Eingabefenster für Benutzername und Passwort
    Parameter(s): $title = Fenstertitel
    optional: $minLen = Mindestlänge des Passworts (Standard = keine Mindestlänge)
    optional: $StartLang = die Sprache auswählen (Standard = Deutsch)
    optional: $bPassVisible = True/False = Passwort sichtbar anzeigen Ja/Nein (Standard = Nein)
    optional: $x = Horizontale Position des Fensters (Standard = zentriert)
    optional: $y = 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<WindowsConstants.au3>
    Author(s): Oscar (http://www.autoit.de)
    ===========================================================================================================
    #ce
    Func _LogInBox($title, $minLen = 0, $StartLang = 'German', $bPassVisible = False, $x = -1, $y = -1)
    Local $hGui, $hUserLabel, $hUser, $hPass, $hCheck, $hLanguage, $hCancel, $hOk
    Local $opt, $style, $tmp
    Local $err = 0, $font = 'Arial', $aOut[2]
    Local $Userlabel, $PassLabel, $PassVisible, $Language, $Check, $Cancel, $Ok
    Local $bgColorInner = 0xdddddd, $bgColorOuter = 0xaaaaaa
    $opt = Opt('GUIOnEventMode', 0)
    Switch $StartLang
    Case 'Deutsch', 'German'
    $Language = 'Deutsch|Englisch'
    $Userlabel = 'Benutzername:' & @CRLF & '(erforderlich)'
    $PassLabel = 'Passwort:'
    If $minLen > 0 Then $PassLabel &= @CRLF & '(min. ' & $minLen & ' Zeichen)'
    $Check = '&Passwort sichtbar'
    $Ok = 'Anmelden...'
    $Cancel = 'Abbrechen'
    Case 'Englisch', 'English'
    $Language = 'English|German'
    $Userlabel = 'Username:' & @CRLF & '(needed)'
    $PassLabel = 'Password:'
    If $minLen > 0 Then $PassLabel &= @CRLF & '(min. ' & $minLen & ' Chars)'
    $Check = '&Password visible'
    $Ok = 'Log in...'
    $Cancel = 'Cancel'
    Case Else
    Return SetError(1, 0, $aOut)
    EndSwitch
    $hGui = GUICreate($title, 343, 200, $x, $y, BitOR($WS_SYSMENU, $DS_SETFOREGROUND))
    GUISetIcon(@SystemDir & "\shell32.dll", -212)
    GUISetBkColor($bgColorOuter)
    GUICtrlCreateLabel('', 5, 5, 325, 120, -1, $WS_EX_CLIENTEDGE)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetBkColor(-1, $bgColorInner)
    $hUserLabel = GUICtrlCreateLabel($Userlabel, 12, 17, 90, 35)
    GUICtrlSetFont(-1, 9, 400, 0, $font)
    GUICtrlSetBkColor(-1, $bgColorInner)
    $hUser = GUICtrlCreateInput('', 115, 20, 210, 25, $WS_TABSTOP)
    GUICtrlSetFont(-1, 10, 400, 0, $font)
    $hPassLabel = GUICtrlCreateLabel($PassLabel, 12, 63 + ($minLen = 0) * 6, 100, 35)
    GUICtrlSetFont(-1, 9, 400, 0, $font)
    GUICtrlSetBkColor(-1, $bgColorInner)
    If $bPassVisible Then
    $style = BitOR($ES_AUTOHSCROLL, $WS_TABSTOP)
    Else
    $style = BitOR($ES_PASSWORD, $ES_AUTOHSCROLL, $WS_TABSTOP)
    EndIf
    $hPass = GUICtrlCreateInput('', 115, 65, 210, 25, $style)
    GUICtrlSetFont(-1, 10, 400, 0, $font)
    $hCheck = GUICtrlCreateCheckbox($Check, 120, 92, 200, 25)
    GUICtrlSetFont(-1, 9, 400, 0, $font)
    GUICtrlSetBkColor(-1, $bgColorInner)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $hLanguage = GUICtrlCreateCombo('', 10, 135, 100, 25, $CBS_DROPDOWNLIST)
    GUICtrlSetData(-1, $Language, StringLeft($Language, StringInStr($Language, '|')-1))
    GUICtrlSetFont(-1, 10, 400, 0, $font)
    $hCancel = GUICtrlCreateButton($Cancel, 250, 135, 80, 25)
    GUICtrlSetFont(-1, 9, 400, 0, $font)
    $hOk = GUICtrlCreateButton($Ok, 160, 135, 80, 25, $BS_DEFPUSHBUTTON)
    GUICtrlSetFont(-1, 9, 400, 0, $font)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState()
    WinSetOnTop($title, '', 1)
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE, $hCancel
    $err = 1
    ExitLoop
    Case $hCheck
    If BitAND(GUICtrlRead($hCheck), $GUI_CHECKED) Then
    $tmp = GUICtrlRead($hPass)
    GUICtrlDelete($hPass)
    $hPass = GUICtrlCreateInput($tmp, 115, 65, 210, 25)
    GUICtrlSetFont(-1, 10, 400, 0, $font)
    GUICtrlSetState(-1, $GUI_FOCUS)
    Else
    $tmp = GUICtrlRead($hPass)
    GUICtrlDelete($hPass)
    $hPass = GUICtrlCreateInput($tmp, 115, 65, 210, 25, BitOR($ES_PASSWORD, $ES_AUTOHSCROLL))
    GUICtrlSetFont(-1, 10, 400, 0, $font)
    GUICtrlSetState(-1, $GUI_FOCUS)
    EndIf
    Case $hLanguage
    Switch GUICtrlRead($hLanguage)
    Case 'Deutsch', 'German'
    $Language = 'Deutsch|Englisch'
    $Userlabel = 'Benutzername:' & @CRLF & '(erforderlich)'
    $PassLabel = 'Passwort:'
    If $minLen > 0 Then $PassLabel &= @CRLF & '(min. ' & $minLen & ' Zeichen)'
    $Check = '&Passwort sichtbar'
    $Ok = 'Anmelden...'
    $Cancel = 'Abbrechen'
    Case 'Englisch', 'English'
    $Language = 'English|German'
    $Userlabel = 'Username:' & @CRLF & '(needed)'
    $PassLabel = 'Password:'
    If $minLen > 0 Then $PassLabel &= @CRLF & '(min. ' & $minLen & ' Chars)'
    $Check = '&Password visible'
    $ok = 'Log in...'
    $Cancel = 'Cancel'
    EndSwitch
    GUICtrlSetData($hLanguage, '')
    GUICtrlSetData($hLanguage, $Language, StringLeft($Language, StringInStr($Language, '|')-1))
    GUICtrlSetData($hUserLabel, $Userlabel)
    GUICtrlSetData($hPassLabel, $PassLabel)
    GUICtrlSetData($hCheck, $Check)
    GUICtrlSetData($hCancel, $Cancel)
    GUICtrlSetData($hOk, $Ok)
    GUICtrlSetState($hUser, $GUI_FOCUS)
    Case $hOk
    $aOut[0] = GUICtrlRead($hUser)
    $aOut[1] = GUICtrlRead($hPass)
    ExitLoop
    EndSwitch
    If GUICtrlRead($hUser) <> '' And StringLen(GUICtrlRead($hPass)) >= $minLen 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', $opt)
    GUIDelete($hGui)
    Return SetError($err, 0, $aOut)
    EndFunc ;==>_LogInBox

    [/autoit]
  • Danke!
    Und falls sich jemand berufen fühlt (Alina?) die paar Sachen zu übersetzen, dann baue ich das mit ein.

    Du hast Post @Oascar ;)

    LG, Crazy-A.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Vielen Dank!
    Dank Deiner Hilfe gibt es jetzt eine dänische Version der LogIn-Box. :thumbup:

    Wieso DANKE?
    Eine Hand wäscht die andere Hand, zusammen putzen wir die Festplatte. Oder wie war das? ;)

    LG, Crazy-A.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Mir fällt gerade noch ein: Ist es eigentlich sinnvoll bei der Sprachauswahl immer alle Sprachen in der jeweils eingestellten Sprache anzuzeigen?
    Als Beispiel:
    Eingestellte Sprache = "Deutsch". Angezeigt wird "Deutsch|Englisch|Dänisch"
    Eingestellte Sprache = "Englisch". Angezeigt wird "German|English|Danish"
    Eingestellte Sprache = "Dänisch". Angezeigt wird "Tysk|Engelsk|Dansk"

    Oder ist es sinnvoller die Auswahl der Sprache in der jeweiligen Landessprache zu machen?
    Also: "Deutsch|English|Dansk"

  • Hallo Oscar.

    Ohne DIR auf die Füße zu treten, würde ich sagen: Nein.

    Sinnvoll wäre es so: "Deutsch|English|Dansk", da die Person, die das Tool nutzt ja jeweils ihre Sprache nutzt und dann auch diese in der Sprachauswahl trifft. Wollte ich eigentlich schon mal schreiben, aber da wollte ich Dir nicht auf die Füße treten. Nun hast Du ja selber gefragt. Hoffe das geht somit dann auch okay.

    LG und ein schönes Wochenende.

    Crazy-A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl


  • Mehr Transparents erreicht man, nur noch mit den Landesfarben links daneben ! ;)

    Landesfarben? Also ich meine da würden die Landesflaggen eine schöne Sache sein.

    LG und allen ein schönes Wochenende.

    Crazy-A.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • WOW, das ist sehr schön gemacht.

    Darf ich fragen, wie die icons.icl entstanden ist? welche Software macht das denn?

    LG, Crazy-A.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl