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
#include<Misc.au3>
#include<GUIConstants.au3>
;--------------------------------------------------------------------------------------------------------------------------------------------------
;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
;--------------------------------------------------------------------------------------------------------------------------------------------------
#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 ###
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()
EndSwitch
WEnd
func _exit()
_MouseTrap()
Exit
endfunc
_MouseTrap()
func _win()
endfunc
func _sperren()
hotkeyset("{lwin}", "_win")
hotkeyset("{rwin}", "_win")
$passwort = GUICtrlRead($pw)
$transp = GUICtrlRead($transparenz)
Opt("WinTitleMatchMode", 3)
Opt("TrayIconHide", 1)
$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)
_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
Neuer Source Code:
Spoiler anzeigen
#cs
Programmed by Black Viper
https://autoit.de/www.autoit.de
;--------------------------------------------------------------------------------------------------------------------------------------------------
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
#include<Misc.au3>
#include<GUIConstants.au3>
;--------------------------------------------------------------------------------------------------------------------------------------------------
;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
;--------------------------------------------------------------------------------------------------------------------------------------------------
#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 ###
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()
EndSwitch
WEnd
func _exit()
_MouseTrap()
Exit
endfunc
_MouseTrap()
[/autoit] [autoit][/autoit] [autoit]func _end()
Exit
endfunc
func _win()
send ("")
endfunc
func _sperren()
hotkeyset("{lwin}", "_win")
hotkeyset("{rwin}", "_win")
$passwort = GUICtrlRead($pw)
$transp = GUICtrlRead($transparenz)
Opt("WinTitleMatchMode", 3)
Opt("TrayIconHide", 1)
$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)
_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)
$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
Wend
endfunc
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