Passwor eingabe bei Computer start

  • Bitte. Mit Installationsanweisungen ;) .
    -Startet beim Einloggen des Benutzers, bei dem Installiert wurde
    -Vollbild
    -Kann man nicht Alt+F4en
    -Man kann den Taskmanager nicht starten
    -Fährt nach einer bestimmten Anzahl an Fehlversuchen herunter
    -Fährt wenn niemand was macht nach einer bestimmten Zeit herunter
    -Passwort wird gepunktet
    -und das Beste: Du kannst alles nach deinen Ideen umwandeln (ich liebe AutoIt)

    Aber merk dir das Passwort. Wenn du es vergisst: Tja, schei*e. Am Besten, du schreibst es dir irgendwo auf nen Zettel (im PC: haha, wie soll man das dann lesen?)

    Spoiler anzeigen
    [autoit]

    ;Installationsanleitung:
    ;1. Die Werte hier unter bis zur Linie entsprechend ändern
    ;2. Compilen (F7)
    ;3. Registry öffnen (Ausführen>"regedit" eingeben)
    ;4. Den Pfad HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run in der Registry öffnen
    ;5. Neue Zeichenfolge mit irgendeinem Namen und dem Pfad zum Programm als Wert erstellen
    ;6. Fertig ;)

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

    ;Das richtige Passwort hier reinschreiben!
    $Passwort="test"

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

    ;Wie viele Versuche hat man?
    $Versuche=3

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

    ;Wieder Herunterfahren nach ... Minuten
    $Timeout=5

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

    ;--------------
    #include <ButtonConstants.au3> ;Braucht man, damit das Funktioniert
    #include <GUIConstantsEx.au3> ;-"-
    #include <WindowsConstants.au3> ;-"-
    #include <EditConstants.au3> ;-"-

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

    $Breite=@DesktopWidth
    $Hoehe=@DesktopHeight

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

    ;-Das Fenster-
    $Form1 = GUICreate("Passwort-Abfrage",$Breite,$Hoehe, 0,0,BitOR($WS_POPUP,$WS_MAXIMIZE)) ;Erstellt Fenster in Vollbild
    GUISetBkColor(0x000000) ;Setzt die Hintergrundfarbe auf Schwarz
    $input = GUICtrlCreateInput("Passwort", ($Breite-121)/2,($Hoehe-21)/2, 121, 21,$ES_PASSWORD) ;Eingabefenster
    $Label1 = GUICtrlCreateLabel("Bitte gebe das Passwort ein:",($Breite-138)/2,($Hoehe-17)/2-30, 138, 17) ;Text
    GUICtrlSetColor(-1, 0xFFFFFF) ;Farbe des Textes (Weiß)
    $Button1 = GUICtrlCreateButton("OK",$Breite/2+50,($Hoehe-25)/2+30, 75, 25, BitOR($BS_DEFPUSHBUTTON,$WS_GROUP)) ;Button der auch ausgelöst wird, wenn man Enter drückt
    $Label2 = GUICtrlCreateLabel("",$Breite/2-80,($Hoehe-17)/2+30, 87, 17) ;Hier kommt die "Noch...Versuche"-Anzeige rein
    GUICtrlSetColor(-1, 0xFFFFFF) ;Textfarbe: Weiß
    GUISetState(@SW_SHOW) ;Das Fenster wird "aktiviert"
    ;-Ende des Fensters-

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

    $Timer=TimerInit() ;Startet einen Timer

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

    While 1 ;Unendlichschleife
    If ProcessExists("taskmgr.exe") Then ProcessClose("taskmgr.exe") ;Wenn der Taskmanager geöffnet wurde, ihn schließen
    If TimerDiff($Timer)>$Timeout*60000 Then Shutdown(1) ;Herunterfahren
    Sleep(50) ;0,05 Sekunden warten (schont den Prozessor)
    WinSetOnTop("Passwort-Abfrage","",1) ;Fenster wird immer nach oben gesetzt
    $nMsg = GUIGetMsg() ;Überprüft, ob das Fenster irgendwas meldet
    Switch $nMsg
    Case $Button1 ;Wenn der Button gedrückt wurde
    If GUICtrlRead($input)=$Passwort Then ;Wenn das, was in der Input steht gleich mit dem Passwort ist,..
    Exit ;Programm beenden
    Else ;Sonst
    If $Versuche<=1 Then ;Wenn die Anzahl der Versuche weniger oder gleich 1 ist
    Shutdown(1) ;Herunterfahren
    Else ;Sonst
    $Versuche-=1 ;Versuche ein weniger
    GUICtrlSetData($Label2,"Noch "&$Versuche&" Versuche!") ;Text ändern
    GUICtrlSetData($input,"") ;Setzt Eingabefeld wieder leer
    EndIf
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Rechtschreibfehler sind Spezialeffekte meiner Tastatur.

  • Hi zusammen,

    bin zwar noch neu und blutiger Anfänger, aber was ähnliches hab ich auch gebastelt.

    Wegen dem Passwort Problem einfach nen Hotkey mit Tastenkombi einbauen .... das vergisst man weniger fix wie ein Passwort ;)

    z.b.

    [autoit]

    HotKeySet("+!d", "Beenden")

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

    Func Beenden ()
    Exit
    EndFunc

    [/autoit]


    PS: Wie würde man das als Dienst starten ? Ich hab mein Skript aufgeteilt und ein Startskript für das eigentliche in den Autostart gelegt. Das Hauptskript checkt das und kopiert zurück ..