Bildschirm Sperren / Dunkel schalten

  • Da mich selber Interessiert hat ob es möglich ist mit Autoit den Bildschirm zu sperren bzw dunkel zu schalten hab ich mal n bisschen im Forum gestöbert und bin auch recht schnell fündig geworden. Da es zu diesem Thema sehr viele Fragen und auch Threads gibt, jedoch immer nur einzelne "Code-Schnippsel" vorhanden sind, hab ich mich mal hingesetzt und selbst ein Script dafür geschrieben.
    Das Script basiert vorallem auf dem von Tweaky, wobei seins bei mir Fehler mit den Variablen bringt, so hab ich es gekürzt und umgeschrieben. Jetzt auch enthalten ist eine GUI in welcher man einstellen kann welches Passwort man haben möchte, sowie die Transparenz des Bildschirms ("Durchsichtig" - Flächig Dunkel). Dass es nicht möglich ist dass man bei einer Transparenten Oberfläche das Passwort lesen kann, wird das Input feld
    einfach ausgeblendet nachdem man den Bildschrim Sperrt.

    [Blockierte Grafik: http://www.gwsystems.de/downloads/autoit/gui1.jpg] [Blockierte Grafik: http://www.gwsystems.de/downloads/autoit/gui2.jpg]

    Spoiler anzeigen
    [autoit]

    #include<Misc.au3>
    #include<GUIConstants.au3>

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

    ;--------------------------------------------------------------------------------------------------------------------------------------------------
    ;Dieses Script:
    ; - startet eine GUI in der das Passwort, sowie die Transparenz festgelegt werden kann
    ; - startet anschließend eine schwarze Oberfläche
    ; - diese kann nur durch korrekte Eingabe des Passwortes verlassen werden
    ; - wird eine andere Tastenkombination, Win-Taste, Programm gestartet, usw. wird diese GUI automatisch wieder in den Vordergrund geholt
    ; - Es werden bestimmte Fenster automatisch geschlossen
    ; - Das Passwort Feld wird in der GUI unsichtbar gemacht nachdem der Bildschirm gesperrt wurde dass man auch bei Transparemz das Passwort nicht sehen kann
    ;--------------------------------------------------------------------------------------------------------------------------------------------------

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

    #Region ### START Koda GUI section ###
    $Form2 = GUICreate("Bildschirm v1.0", 325, 214, 382, 293)
    $Group1 = GUICtrlCreateGroup("Passwort", 24, 24, 281, 41)
    $Label1 = GUICtrlCreateLabel("Gewünschtes Passwort:", 32, 40, 118, 17)
    $pw = GUICtrlCreateInput("xxx", 152, 36, 137, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Transparenz", 24, 80, 257, 65)
    $transparenz = GUICtrlCreateSlider(64, 118, 177, 25)
    GUICtrlSetLimit(-1, 255, 0)
    GUICtrlSetData($transparenz, 255)
    $Label2 = GUICtrlCreateLabel("Hell", 64, 96, 22, 17)
    $Label3 = GUICtrlCreateLabel("Dunkel", 203, 96, 38, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $sperren = GUICtrlCreateButton("Bildschirm Sperren", 120, 152, 97, 25, 0)
    $Datei = GUICtrlCreateMenu("&Datei")
    $help = GUICtrlCreateMenuItem("Hilfe", $Datei)
    $end = GUICtrlCreateMenuItem("Ende", $Datei)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $sperren
    GUICtrlSetState($pw,$GUI_HIDE)
    _sperren()
    case $help
    MsgBox(0,"Hilfe","- Dieses Programm sperrt den Bildschirm und verhindert damit Eingaben auf dem Desktop."&@CRLF&"- Die Windows-Taste sowie der Taskmanager und verschiedene andere"&@CRLF&" "&"Programme werden deaktiviert."&@CRLF&"- Das Programm ruft sich dauerhaft in den Vordergrund um zu verhindern dass"&@CRLF&" "&"Eingaben getätigt werden können.")
    case $end
    _end()

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

    EndSwitch
    WEnd

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

    func _exit()
    _MouseTrap()
    Exit
    endfunc
    _MouseTrap()

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

    func _win()
    endfunc

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

    func _sperren()
    hotkeyset("{lwin}", "_win")
    hotkeyset("{rwin}", "_win")
    $passwort = GUICtrlRead($pw)
    $transp = GUICtrlRead($transparenz)
    Opt("WinTitleMatchMode", 3)
    Opt("TrayIconHide", 1)

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

    $gui_titel = "Sperren"
    $gui = GUICreate($gui_titel,@DesktopWidth+5,@DesktopHeight+5,-5,-5,0x80000000,0x00000080)
    GUISetBkColor(0x000000)
    WinSetTrans($gui,"",$transp)
    $input = GUICtrlCreateInput("", @DesktopWidth/2, @DesktopHeight/2, 50, -1); $ES_PASSWORD)
    GUICtrlSetState($input, $GUI_HIDE)

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

    _MouseTrap(@DesktopWidth-1, 0)

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

    GUISetState()

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

    While 1
    $pos = MouseGetPos()
    If $pos[0] <> @DesktopWidth-1 or $pos[1] <> @DesktopHeight Then _MouseTrap(@DesktopWidth-1, @DesktopHeight)
    sleep(10)
    If Not WinActive($gui_titel) Then WinActivate($gui_titel)
    If GUICtrlRead($input) = $passwort Then
    _MouseTrap()
    Exit
    EndIf
    If WinExists("Windows Task-Manager") Then WinClose("Windows Task-Manager")
    If WinExists("Internet Explorer") Then
    WinClose("Internet Explorer")
    If WinExists("Internet Explorer", "&Registerkarten schließen") Then ControlClick("Internet Explorer", "&Registerkarten schließen", 6)
    EndIf
    If WinExists("- Outlook Express") Then WinClose("- Outlook Express")
    If WinExists("- Editor") Then WinClose("- Editor")
    Wend
    endfunc

    [/autoit]


    Neuer Source Code:

    Spoiler anzeigen
    [autoit]


    #cs

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

    Programmed by Black Viper
    https://autoit.de/www.autoit.de

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

    ;--------------------------------------------------------------------------------------------------------------------------------------------------
    Dieses Programm:
    - startet eine GUI in welcher der Benutzer wählen kann wie stark der Bildschrim verdunkelt werden soll sowie welches Passwort er gerne hätte
    - Bietet ebenfalls als auswahlmöglichkeit welche Programme blockiert werden sollen
    - sperrt anschließend den Bildschirm und schaltet die Einstellungsmöglichkeiten weg
    - verhindert jeglichen Zugriff, setzt sich dauerhaft in den Vordergrund und verhindert den Start von verschiedenen Programmen
    - beendet sich erst nach Eingabe des richtigen Passwortes welches zuvor in der 1. GUI festgelegt wurde
    ;--------------------------------------------------------------------------------------------------------------------------------------------------
    #ce

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

    #include<Misc.au3>
    #include<GUIConstants.au3>

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

    ;--------------------------------------------------------------------------------------------------------------------------------------------------
    ;Dieses Script:
    ; - startet eine GUI in der das Passwort, sowie die Transparenz festgelegt werden kann
    ; - startet anschließend eine schwarze Oberfläche
    ; - diese kann nur durch korrekte Eingabe des Passwortes verlassen werden
    ; - wird eine andere Tastenkombination, Win-Taste, Programm gestartet, usw. wird diese GUI automatisch wieder in den Vordergrund geholt
    ; - Es werden bestimmte Fenster automatisch geschlossen
    ; - Das Passwort Feld wird in der GUI unsichtbar gemacht nachdem der Bildschirm gesperrt wurde dass man auch bei Transparemz das Passwort nicht sehen kann
    ;--------------------------------------------------------------------------------------------------------------------------------------------------

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

    #Region ### START Koda GUI section ###
    $Form2 = GUICreate("Bildschirm v1.1", 406, 247, 347, 267)
    $sperren = GUICtrlCreateButton("Bildschirm Sperren", 168, 192, 97, 25, 0)
    $Tab1 = GUICtrlCreateTab(16, 8, 377, 177)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    $TabSheet1 = GUICtrlCreateTabItem("Einstellungen")
    GUICtrlSetState(-1,$GUI_SHOW
    $Group1 = GUICtrlCreateGroup("Passwort", 46, 47, 281, 41)
    $Label1 = GUICtrlCreateLabel("Gewünschtes Passwort:", 54, 63, 118, 17)
    $pw = GUICtrlCreateInput("xxx", 174, 59, 137, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Transparenz", 46, 103, 257, 73)
    $transparenz = GUICtrlCreateSlider(86, 141, 177, 25)
    GUICtrlSetLimit(-1, 255, 0)
    GUICtrlSetData($transparenz, 255)
    $Label2 = GUICtrlCreateLabel("Hell", 86, 119, 22, 17)
    $Label3 = GUICtrlCreateLabel("Dunkel", 225, 119, 38, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $TabSheet2 = GUICtrlCreateTabItem("Programme")
    $Label4 = GUICtrlCreateLabel("Internet Explorer", 22, 40, 81, 17)
    $Label5 = GUICtrlCreateLabel("Fire Fox", 62, 64, 41, 17)
    $Label6 = GUICtrlCreateLabel("Opera", 70, 88, 33, 17)
    $Label7 = GUICtrlCreateLabel("Outlook Express", 22, 112, 81, 17)
    $Label8 = GUICtrlCreateLabel("Task Manager", 30, 136, 73, 17)
    $Label9 = GUICtrlCreateLabel("Editor", 72, 160, 31, 17)
    $Label10 = GUICtrlCreateLabel("CMD Fenster", 153, 40, 66, 17)
    $iexp = GUICtrlCreateCheckbox("iexp", 112, 40, 17, 17)
    $ffox = GUICtrlCreateCheckbox("Checkbox1", 112, 64, 17, 17)
    $opera = GUICtrlCreateCheckbox("Checkbox1", 112, 88, 17, 17)
    $outexp = GUICtrlCreateCheckbox("Checkbox1", 112, 112, 17, 17)
    $taskm = GUICtrlCreateCheckbox("Checkbox1", 112, 136, 17, 17)
    $editor = GUICtrlCreateCheckbox("Checkbox1", 112, 160, 17, 17)
    $cmd = GUICtrlCreateCheckbox("cmd", 231, 40, 17, 17)
    $icq = GUICtrlCreateCheckbox("cmd", 231, 64, 17, 17)
    $Label11 = GUICtrlCreateLabel("ICQ", 197, 64, 22, 17)
    $Label12 = GUICtrlCreateLabel("XFire", 191, 112, 28, 17)
    $xfire = GUICtrlCreateCheckbox("cmd", 231, 112, 17, 17)
    $Label13 = GUICtrlCreateLabel("MSN", 191, 88, 28, 17)
    $msn = GUICtrlCreateCheckbox("cmd", 231, 88, 17, 17)
    $Label14 = GUICtrlCreateLabel("Skype", 185, 136, 34, 17)
    $skype = GUICtrlCreateCheckbox("cmd", 231, 136, 17, 17)
    GUICtrlCreateTabItem("")
    $Datei = GUICtrlCreateMenu("&Datei")
    $help = GUICtrlCreateMenuItem("Hilfe", $Datei)
    $end = GUICtrlCreateMenuItem("Ende", $Datei)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $sperren
    GUISetState(@SW_HIDE,$Form2)
    _sperren()
    case $help
    MsgBox(0,"Hilfe","- Dieses Programm sperrt den Bildschirm und verhindert damit Eingaben auf dem Desktop."&@CRLF&"- Die Programme die gesperrt werden sollen können Individuell"&@CRLF&" "&"festgelegt werden."&@CRLF&"- Das Programm ruft sich dauerhaft in den Vordergrund um zu verhindern dass"&@CRLF&" "&"Eingaben getätigt werden können.")
    case $end
    _end()

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

    EndSwitch
    WEnd

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

    func _exit()
    _MouseTrap()
    Exit
    endfunc

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

    _MouseTrap()

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

    func _end()
    Exit
    endfunc

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

    func _win()
    send ("")
    endfunc

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

    func _sperren()
    hotkeyset("{lwin}", "_win")
    hotkeyset("{rwin}", "_win")
    $passwort = GUICtrlRead($pw)
    $transp = GUICtrlRead($transparenz)
    Opt("WinTitleMatchMode", 3)
    Opt("TrayIconHide", 1)

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

    $gui_titel = "Sperren"
    $gui = GUICreate($gui_titel,@DesktopWidth+5,@DesktopHeight+5,-5,-5,0x80000000,0x00000080)
    GUISetBkColor(0x000000)
    WinSetTrans($gui,"",$transp)
    $input = GUICtrlCreateInput("", @DesktopWidth/2, @DesktopHeight/2, 50, -1); $ES_PASSWORD)
    GUICtrlSetState($input, $GUI_HIDE)

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

    _MouseTrap(@DesktopWidth-1, 0)

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

    GUISetState()

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

    While 1
    $taskmanager = GUICtrlRead($taskm)
    $iexplorer = GUICtrlRead($iexp)
    $firefox = GUICtrlRead($ffox)
    $operabrows = GUICtrlRead($opera)
    $outlook = GUICtrlRead($outexp)
    $editorexe = GUICtrlRead($editor)
    $command = GUICtrlRead($cmd)
    $icqexe = GUICtrlRead($icq)
    $msnexe = GUICtrlRead($msn)
    $xfireexe = GUICtrlRead($xfire)
    $skypeexe = GUICtrlRead($skype)

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

    $pos = MouseGetPos()
    If $pos[0] <> @DesktopWidth-1 or $pos[1] <> @DesktopHeight Then _MouseTrap(@DesktopWidth-1, @DesktopHeight)
    sleep(10)
    If Not WinActive($gui_titel) Then WinActivate($gui_titel)
    If GUICtrlRead($input) = $passwort Then
    _MouseTrap()
    Exit
    EndIf
    ;_Taskmanager
    if $taskmanager = 1 then
    if processExists("taskmgr.exe") then processclose("taskmgr.exe") ;winclose("Windows Task-Manager") ;
    endif
    ;_ Internet Explorer
    if $iexplorer = 1 then
    If ProcessExists("iexplore.exe") Then ProcessClose("iexplore.exe")
    endif
    ;_ Fire Fox
    if $firefox = 1 then
    If ProcessExists("firefox.exe") Then ProcessClose("firefox.exe")
    endif
    ;_ Opera
    if $operabrows = 1 then
    If ProcessExists("opera.exe") Then ProcessClose("opera.exe")
    endif
    ;_ outlook
    if $outlook = 1 then
    If ProcessExists("OUTLOOK.EXE") Then ProcessClose("OUTLOOK.EXE")
    endif
    ;_ Editor
    if $editorexe = 1 then
    If ProcessExists("notepad.exe") Then ProcessClose("notepad.exe")
    endif
    ;_ CMD
    if $command = 1 then
    If ProcessExists("cmd.exe") Then ProcessClose("cmd.exe")
    endif
    ;_ ICQ
    if $icqexe = 1 then
    If ProcessExists("ICQ.exe") Then ProcessClose("ICQ.exe")
    endif
    ;_ MSN1
    if $msnexe = 1 then
    ;MsgBox (0,"Test","MSN")
    If ProcessExists("msnmsgr.exe") Then ProcessClose("msnmsgr.exe")
    endif
    ;_ MSN2
    if $msnexe = 1 then
    ;MsgBox (0,"Test","MSN")
    if ProcessExists("msmsgs.exe") Then ProcessClose("msmsgs.exe")
    endif
    ;_ XFire
    if $xfireexe = 1 then
    If ProcessExists("xfire.exe") Then ProcessClose("xfire.exe")
    endif
    ;_ Skype
    if $skypeexe = 1 then
    If ProcessExists("Skype.exe") Then ProcessClose("Skype.exe")
    endif

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

    Wend
    endfunc

    [/autoit]

    Edit: Jaja, die gute alte Absicherung. Ich hab vergessen das "Not - Aus" raus zu nehmen, das heißt die einfache exit func auf nem Hotkey. Ich hab das Script editiert, jedoch ist der Fehler noch in der aktuellen exe datei (im zip anhang) enthalten. Es sollte jedoch keine Probleme geben sich die exe selbst zu compilieren.

    Edit 2: Neuer Source Code + Zip Datei

    IconChooser.zip

    RDv2017_ini5.au3

    9 Mal editiert, zuletzt von Black Viper (24. November 2008 um 21:13)

  • Du musst UMBEDINGT

    [autoit]

    Opt("WinTitleMatchMode",3)

    [/autoit]

    oben noch reintun, sonst aktiviert der immer abwechselnd den offenen Firefox und das Sperren-Fenster, eine Eingabe ist dann fast nicht mehr möglich.

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Du musst UMBEDINGT

    [autoit]

    Opt("WinTitleMatchMode",3)

    [/autoit]

    oben noch reintun, sonst aktiviert der immer abwechselnd den offenen Firefox und das Sperren-Fenster, eine Eingabe ist dann fast nicht mehr möglich.

    Also anstatt in Zeile 72

    [autoit]

    Opt("WinTitleMatchMode",2)

    [/autoit]

    ,

    [autoit]

    Opt("WinTitleMatchMode",3)

    [/autoit]

    setzen? Ok, kein Problem, gut zu wissen :)

    ____________
    Post 1 editted