Speichern aus der LoginBox herraus!!

  • Meine lieben Auto-IT Freunde,

    ich Geister schon seit einigen Tagen hier als Besucher durch das Forum und habe hier schon echt tolle hilfestellungen gefunden die mir schon bei einigen Problemen geholfen haben.

    Dennoch stoße ich jetzt auf ein Problem.

    Als Grundlage benutze ich momentan das alte Loginbox-Script von Oscar (LogIn-Box).

    Ich möchte mit dem Script, keine Anmeldemaske, sondern ein Script zur Erstellung von benutzerkonten (Lokal) basteln. Es langt wenn es das Passwort Benutzernamen und Url in eine .txt datei schreibt und vorerst abspeichert.

    Hier mal mein Anfang (bitte nicht lachen ;) , beschäftige mich erst seit ein paar Tagen mit dem Thema)

    [autoit]


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

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

    Global $array = _LogInBox('Einstellungen vornehmen', 0, 'Deutsch')
    #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

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

    Func _LogInBox($title, $minLen = 0, $StartLang = 'German', $bPassVisible = False, $x = -1, $y = -1)
    Local $hGui, $hUserLabel, $hUser, $hPass, $hCheck, $hLanguage, $hCancel, $hOk, $hURL
    Local $opt, $style, $tmp
    Local $err = 0, $font = 'Arial', $aOut[2]
    Local $Userlabel, $PassLabel, $PassVisible, $Language, $Check, $Cancel, $Ok, $URLlabel
    Local $bgColorInner = 0xdddddd, $bgColorOuter = 0xaaaaaa
    $opt = Opt('GUIOnEventMode', 0)
    Switch $StartLang
    Case 'Deutsch', 'German'
    $Language = 'Deutsch|Englisch'
    $Userlabel = 'Benutzername:' & @CRLF & '(erforderlich)'
    $PassLabel = 'Passwort:'
    $URLlabel = 'URL:'
    If $minLen > 0 Then $PassLabel &= @CRLF & '(min. ' & $minLen & ' Zeichen)'
    $Check = '&Passwort sichtbar'
    $Ok = 'Festlegen...'
    $Cancel = 'Abbrechen'
    Case 'Englisch', 'English'
    $Language = 'English|German'
    $Userlabel = 'Username:' & @CRLF & '(needed)'
    $PassLabel = 'Password:'
    $URLlabel = 'URL:'
    If $minLen > 0 Then $PassLabel &= @CRLF & '(min. ' & $minLen & ' Chars)'
    $Check = '&Password visible'
    $Ok = 'Set...'
    $Cancel = 'Cancel'
    Case Else
    Return SetError(1, 0, $aOut)
    EndSwitch

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

    $hGui = GUICreate($title, 343, 250, $x, $y, BitOR($WS_SYSMENU, $DS_SETFOREGROUND))
    GUISetIcon(@SystemDir & "\shell32.dll", -212)
    GUISetBkColor($bgColorOuter)
    GUICtrlCreateLabel('', 5, 5, 325, 212, -1, $WS_EX_CLIENTEDGE)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetBkColor(-1, $bgColorInner)

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

    $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)

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

    $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)

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

    $hURLlabel = GUICtrlCreateLabel($URLlabel, 12, 128, 90, 35)
    GUICtrlSetFont(-1, 9, 400, 0, $font)
    GUICtrlSetBkColor(-1, $bgColorInner)
    $hURL = GUICtrlCreateInput('', 115, 130, 210, 25, $WS_TABSTOP )
    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, 180, 100, 25, $CBS_DROPDOWNLIST)
    GUICtrlSetData(-1, $Language, StringLeft($Language, StringInStr($Language, '|')-1))
    GUICtrlSetFont(-1, 10, 400, 0, $font)
    $hCancel = GUICtrlCreateButton($Cancel, 245, 180, 80, 25)
    GUICtrlSetFont(-1, 9, 400, 0, $font)
    $hOk = GUICtrlCreateButton($Ok, 160, 180, 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:'
    $URLlabel = 'URL:'
    If $minLen > 0 Then $PassLabel &= @CRLF & '(min. ' & $minLen & ' Zeichen)'
    $Check = '&Passwort sichtbar'
    $Ok = 'Festlegen...'
    $Cancel = 'Abbrechen'
    Case 'Englisch', 'English'
    $Language = 'English|German'
    $Userlabel = 'Username:' & @CRLF & '(needed)'
    $PassLabel = 'Password:'
    $URLlabel = 'URL:'
    If $minLen > 0 Then $PassLabel &= @CRLF & '(min. ' & $minLen & ' Chars)'
    $Check = '&Password visible'
    $ok = 'Set...'
    $Cancel = 'Cancel'
    EndSwitch
    GUICtrlSetData($hLanguage, '')
    GUICtrlSetData($hLanguage, $Language, StringLeft($Language, StringInStr($Language, '|')-1))
    GUICtrlSetData($hUserLabel, $Userlabel)
    GUICtrlSetData($hURLlabel, $URLlabel)
    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)
    Opt("WinDetectHiddenText", 1 )

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

    EndFunc

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

    Wäre wirklich nett wenn ihr mir helfen könntet! Hoffe auf baldige Antworten, liebe Grüße

    2 Mal editiert, zuletzt von Sunflex (3. September 2008 um 11:30)

  • Du musst das Array auf 3 erweitern

    [autoit]

    $aOut[3]

    [/autoit]


    Dann der neuen Variable auch etwas zuweisen

    [autoit]

    $aOut[2] = GUICtrlRead($hURL)

    [/autoit]

    Und nach der Funktion fügst du diese 2 Zeilen ein um die Daten von der Funktion in eine Ini-Datei zu schreiben

    [autoit]

    $Datei = @ScriptDir&"\Benutzerdaten.ini"
    IniWriteSection($Datei,$array[0],"Pwd="&$array[1] & @LF & "URL="&$array[2])

    [/autoit]


    Hoffe du wolltest das so ungefähr haben!

  • hmm, hab nochmal mit nem arbeitskollegen gesprochen und er meinte mit der .ini-Datei dürfen wir das nicht machen... hat jemand sonst ne idee wie man mit den vorgegebenen sachen einen windows user unter xp anlegen kann?

    bin für jeden tipp dankbar ;)