Login - Script

  • Hallo alle miteinander!

    Im Geschäft hab ich den Auftrag bekommen ein kleines Progrämmchen zu scheiben, dass folgendes können soll:

    Das Programm soll ausgeführt werden, und ein "login- Fenster" soll erscheinen. Also ein Feld für Benutzer und eines für die Passwort eingabe.
    Danach sollte, die verbindun zu div. Netzlaufwerken hergestellt werden.

    Das habe ich so eigentlich auch hinbekommen, nur mach mit das Zeug mit der GUI einwenig Probleme..

    Also Hier mal der Code:

    [autoit]


    #include <GUIConstants.au3>
    Opt("GUIOnEventMode", 1)
    $return = MsgBox(4, "Login", "Sie wollen sich am KSK System anmelden?", 30)
    If $return = 7 Then ;Eingabe Username
    Exit
    EndIf
    $ok=0
    $login=0
    While $ok=0

    While $login=0
    GUICreate("Login", 320, 100) ; will create a dialog box that when displayed is centered

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

    GUISetHelp("notepad") ; will run notepad if F1 is typed
    Opt("GUICoordMode",2)

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

    $widthCell=120
    GUICtrlCreateLabel ("Benutzername", 10, 20, $widthCell)
    $username = GuiCtrlCreateInput("", 0, -1, 150, 20)

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

    GUICtrlCreateLabel ("Passwort", -2.25*$widthcell, 0)
    $passwd = GuiCtrlCreateInput("", -30, -1, 150, 20,$ES_PASSWORD)

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

    $Button_1 = GUICtrlCreateButton ("Login", -135, 10,50)

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

    GUISetState () ; will display an empty dialog box

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

    ; Run the GUI until the dialog is closed
    Do
    $msg = GUIGetMsg()

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

    Until $msg = $Button_1

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

    ;-------------------------------------------------------------------------------------------
    ; Laufwerk H: wird mit username und passwort gemountet
    DriveMapAdd("H:", "\\ksk-srv1\Home\" & $username, 0, "phtg\" & $username, $passwd)
    DriveMapAdd("I:", "\\ksk-srv1\Readwrite")
    DriveMapAdd("K:", "\\ksk-srv1\Read")
    DriveMapAdd("X:", "\\ksk-srv1\NBK")

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

    $check = DriveMapGet("H:")

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

    IF $check = '\\ksk-srv1\Home\' & $username Then
    $ok=1
    MsgBox(0, "Erfolgreich", "Die Laufwerke wurden verbunden",4)
    Exit
    Else
    MsgBox(0, "Error", "Passwort oder Username wurden nicht akzeptiert.")
    EndIf
    ;-------------------------------------------------------------------------------------------

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

    $login=1
    GUISetOnEvent($GUI_EVENT_CLOSE)

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

    WEnd

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

    WEnd

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

    Das Problem ist irgendwie, dass wenn man auf "Login" klickt nicht aus der Schleife kommt..

    Hat jemand eine Idee?

  • Hallo

    Also ich habe das Script ein bischen umgeschrieben ^^

    Spoiler anzeigen
    [autoit]

    Opt("GUIOnEventMode", 1)

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

    #include <GUIConstants.au3>

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

    $return = MsgBox(4, "Login", "Sie wollen sich am KSK System anmelden?", 30)

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

    If $return = 7 Then ;Eingabe Username
    Exit
    Else
    GUICreate("Login", 320, 100) ; will create a dialog box that when displayed is centered

    GUISetHelp("notepad") ; will run notepad if F1 is typed
    Opt("GUICoordMode",2)

    $widthCell=120
    GUICtrlCreateLabel ("Benutzername", 10, 20, $widthCell)
    $username = GuiCtrlCreateInput("", 0, -1, 150, 20)

    GUICtrlCreateLabel ("Passwort", -2.25*$widthcell, 0)
    $passwd = GuiCtrlCreateInput("", -30, -1, 150, 20,$ES_PASSWORD)

    $Button_1 = GUICtrlCreateButton ("Login", -135, 10,50)
    GUICtrlSetOnEvent($Button_1, '_login')
    GUISetOnEvent($GUI_EVENT_CLOSE, '_exit')
    GUISetState () ; will display an empty dialog box
    EndIf

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

    While 1
    Sleep(100)
    WEnd

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

    Func _login()
    ; Laufwerk H: wird mit username und passwort gemountet
    DriveMapAdd("H:", "\\ksk-srv1\Home\" & GUICtrlRead($username), 0, "phtg\" & GUICtrlRead($username), GUICtrlRead($passwd))
    DriveMapAdd("I:", "\\ksk-srv1\Readwrite")
    DriveMapAdd("K:", "\\ksk-srv1\Read")
    DriveMapAdd("X:", "\\ksk-srv1\NBK")

    $check = DriveMapGet("H:")

    IF $check = '\\ksk-srv1\Home\' & GUICtrlRead($username) Then
    MsgBox(0, "Erfolgreich", "Die Laufwerke wurden verbunden",4)
    Exit
    Else
    MsgBox(0, "Error", "Passwort oder Username wurden nicht akzeptiert.")
    EndIf
    _exit()
    EndFunc

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

    Func _exit()
    Exit
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von Aiden (29. August 2007 um 08:53)

  • woa vielen dank!

    jetzt wo ich mir den Code von dir so anschaue.. macht das alles sinn!
    Ist eigentlich ganz simpel.. drauf kommen muss man eben ;)


    **edit:

    nur eines ist mir nicht ganz klar:
    für was wird die While - Schleife mit dem "Sleep" benötigt?

    Einmal editiert, zuletzt von swalbard (29. August 2007 um 09:20)

  • Das ist dafür das das sich das Programm nicht einfach beendet.

    Die Schleife sorgt also dafür das das Script erst beendet wird wenn die _exit() Funktion ausgelöst wird

  • so hab da gleich noch ne frage:

    Ist es eigentlich möglich eine Verbindung zu einem Netzwerkdrucker herzustellen? Also es müssten keine Treiber usw. installiert werden,
    es muss jedigliche ein Verbindung bestehen.