SecurityWin für kurze Büro-Pausen

  • Hallo,
    ich bin neu hier und ich arbeite noch nicht lange mit AutoIT, deshalb hab ich ein paar fragen zu meinem selbst entworfenen SecurityWin.

    Ich stelle das kurz mal vor: ich will eine art Login-Fenster basteln welches man einfach über alle Anwendungen legen kann. Mann kann sein eigenes Passwort generieren und dann nur mit der Maus auf einem fast unsichtbaren Feld 9 Ziffern eingeben welche dann direkt nach der Eingabe, ohne Bestätigung den Desktop sowie Tastatur freigeben.

    Schauts euch an und gebt bitte Tipps!!! ;)

    Fragen: Ich bekomme einen Fehler wenn ichs ausführen will. Der Fehler sagt mir fehlt ganz unten ein EndFunc aber das stimmt nicht
    Was kann ich tun???? :S ?(

    Verbesserungsvorschläge sind wilkommen

    Danke im Vorraus
    i7Clock

  • erstmal wilkommen im forum^^
    und der error kommt, weil du eine funktion in einer funktion hast, häng die _auslesen() funktion unten dran, dann klappts

    //EDIT: mist, schon wieder zu spät -.-

    Mfg. PCKing


    Mein PC

    CPU: AMD FX 8350 8x4.00GHz
    Ram: 8GB DDR3
    Grafikkarte: Nvidia Geforce GTX 960 (4GB)
    Festplatten: 500GB SSD 1TB HDD
    Laufwerk: Blueray RW+ Brenner

  • Klappt nicht da kommt der selbe Fehler.. Selbst wenn ich die Variablen noch einfüge.

    :S

    //Edit: Passiert
    //Edit2: Danke fürs willkommenheißen :D

  • ne, da fehlt keine variable, es ist die funktion, hier, da läufts:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <WinAPI.au3>
    Global $Button[10]

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

    $gui = GUICreate ("Security", 1366, 768)
    GUISetState (@SW_SHOW)
    GUISetBkColor (1)

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

    $Button[1] = GUICtrlCreateButton ("1", 0, 0, 455, 256)
    $Button[2] = GUICtrlCreateButton ("2", 455, 0, 455, 256)
    $Button[3] = GUICtrlCreateButton ("3", 910, 0, 455, 256)
    $Button[4] = GUICtrlCreateButton ("4", 0, 256, 455, 256)
    $Button[5] = GUICtrlCreateButton ("5", 455, 256, 455, 256)
    $Button[6] = GUICtrlCreateButton ("6", 910, 256, 455, 256)
    $Button[7] = GUICtrlCreateButton ("7", 0, 512, 455, 256)
    $Button[8] = GUICtrlCreateButton ("8", 455, 512, 455, 256)
    $Button[9] = GUICtrlCreateButton ("9", 910, 512, 455, 256)
    $Passwortinput = GUICtrlCreateInput ("", 0, 0, 1, 1)
    $Passwort = 886755

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

    _Transparent ($gui)
    _Passwortgenerator ()

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

    While 1
    $msg = GUIGetMsg ()
    _Zahlen ($msg)
    _block ()

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

    If $msg = -3 Then
    GUICtrlSetData ($Passwortinput, "")
    EndIf

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

    $Auslesen = GUICtrlRead ($Passwortinput)
    If $Auslesen = 989 Then
    _Passwortinfo ($Passwort)
    GUICtrlSetData ($Passwortinput, "")
    EndIf

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

    If $Auslesen = $Passwort Then
    Exit
    EndIf
    Sleep (1000)
    WEnd

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

    Func _Zahlen($msg)
    GUICtrlSetColor ($Passwortinput, 0xFFFFFF)
    For $i=1 To 9 Step 1
    If $msg = $Button[$i] Then
    $a = GUICtrlRead($Passwortinput)
    GUICtrlSetData($Passwortinput, $a & $i)
    EndIf
    Next
    EndFunc

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

    Func _block ()
    BlockInput (1)
    EndFunc

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

    Func _Transparent ($gui)
    WinSetTrans ("", "", 20)
    EndFunc

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

    Func _Passwortinfo ($Passwort)
    MsgBox ( 64, "Passwort", $Passwort, 5)
    EndFunc

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

    Func _Passwortgenerator ()
    $gui2 = GUICreate ("Passwort generieren", 150, 100)
    GUISetState (@SW_SHOW)

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

    $PasswortNeu = GUICtrlCreateInput ("Neues Passwort", 5, 5, 100)
    $PasswortNeu2 = GUICtrlCreateInput ("Neues Passwort bestätigen", 5, 30, 100)
    $OK = GUICtrlCreateButton ("OK", 5, 50, 65, 40)
    $Abbrechen = GUICtrlCreateButton ("Abbrechen", 75, 50, 65, 40)

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

    While 1

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

    $msg = GUIGetMsg ()
    If $msg = -3 Then
    GUISetState (@sw_hide, $gui2)
    WinActivate ($gui)
    EndIf

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

    If $msg = $Abbrechen Then
    GUISetState (@sw_hide, $gui2)
    WinActivate ($gui)
    EndIf

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

    If $msg = $OK Then
    _Auslesen ($PasswortNeu, $PasswortNeu2)
    Sleep (1000)
    GUISetState (@sw_hide, $gui2)
    WinActivate ($gui)
    EndIf

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

    WEnd

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

    EndFunc

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

    Func _Auslesen ($PasswortNeu, $PasswortNeu2);das war der fehler, diese func war in der func daruber
    If $PasswortNeu = $PasswortNeu2 Then
    GUICtrlSetData ($Auslesen, $PasswortNeu)
    Else
    MsgBox (48, "Passwort", "Neues Passwort bestätigen", 5)
    EndIf

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

    EndFunc

    [/autoit]

    Mfg. PCKing


    Mein PC

    CPU: AMD FX 8350 8x4.00GHz
    Ram: 8GB DDR3
    Grafikkarte: Nvidia Geforce GTX 960 (4GB)
    Festplatten: 500GB SSD 1TB HDD
    Laufwerk: Blueray RW+ Brenner

  • genau und ich würde noch empfehlen oben am start noch #NoTrayIcon einzufügen, sonst kann man unten rechts aufs tray gehn und dann Exit drücken ;)

    Mfg. PCKing


    Mein PC

    CPU: AMD FX 8350 8x4.00GHz
    Ram: 8GB DDR3
    Grafikkarte: Nvidia Geforce GTX 960 (4GB)
    Festplatten: 500GB SSD 1TB HDD
    Laufwerk: Blueray RW+ Brenner

  • Muss trotzdem noch was fragen.. wie komme ich jetzt nachdem die zweite schleife zu ende gelaufen ist wieder in die erste weil ich brauche ja die funktionen aus der ersten um alles zu steuern??? help

  • setz die erste schleife auch in eine func rein.
    am anfang des scriptes rufst du einfach die func auf und wenn die 2te schleife zu ende rufst du die func auch auf ^^

    Mfg. PCKing


    Mein PC

    CPU: AMD FX 8350 8x4.00GHz
    Ram: 8GB DDR3
    Grafikkarte: Nvidia Geforce GTX 960 (4GB)
    Festplatten: 500GB SSD 1TB HDD
    Laufwerk: Blueray RW+ Brenner

  • Danke auf so einfache sache komm ich einfach nicht :)


    tja, das leben is manschmal einfacher als man denkt, man muss nur vorher alles sich genau angucken und nachdenken ^^
    und sonst fragen, dafür is ja dieses forum da ^^

    Mfg. PCKing


    Mein PC

    CPU: AMD FX 8350 8x4.00GHz
    Ram: 8GB DDR3
    Grafikkarte: Nvidia Geforce GTX 960 (4GB)
    Festplatten: 500GB SSD 1TB HDD
    Laufwerk: Blueray RW+ Brenner

  • Leider fehlt immernoch iwas kann ma einer drüber schaun und tipps geben bitte :)

    Problem: iwie führt er den else zweig aus und nicht den regulären... damit komme ich auf kein neues passwort und somit kann ich nicht entsperren...
    wie kann ich ein passwort speichern oder den richtigen zweig gehen dann brauch ich nicht speichern also im prinzip nicht^^:) ???

  • kann mir keiner helfen ich hab ne menge ausprobiert z.B. exitloop aber ich weiß nich ob die zweite schleife beendet und wo ich die funktion zur ersten hinsetzen soll??

  • ich glaube du machst in deinem script einiges viel zu kompliziert

    Zitat

    ein Problem hab ich noch wann muss ich die while Funktion wieder starten und wie geht das genau???

    könntest du der genau beschreiben was der Reihe nach passieren soll? ich blick glaub ich sonst nicht ganz durch

  • Ok, also als erstes sollen beide fenster geöffnet werden, das eine um den bildschirm zu versperren (dient dann auch als eingabefeld) dann soll tastatur geblockt werde, dann soll man ein passwort generieren und wenn man auf ok klickt soll es schließen oder wie ich es jetz hab transparent werden. dannach soll die erste schleife starten und warten bis man das passwort eingibtt um dann alles zu schließen um weiter zu arbeiten. das scripte soll so zusagen eine sperre sein um sich nicht abzumelden oder win+l drücken zu müssen.... is einfacher alles laufen zu lassen und nur eine weitere anwendung zu starten als den pc warten zu lassen bis man sich wieder anmeldet is ja resourcenfressender als eine kleine exe

    Danke im voraus :)

  • Es gibt da immernoch ein paar Dinge die mir noch nicht ganz klar sind:
    beide fenster werden geöffnet. Dann stellt der User sein passwort ein indem er es 2mal eingibt.
    Dannach wird die tastatur geblockt. Wie soll man nun die Tastatur wieder reaktivieren können?
    Soll man das passwort zum reaktiveren über die Buttons "eintippen"?
    Oder wie gibt man das zum reaktivieren ein? weil die tastatur ist ja gesperrt