Moin moin,
Ich habe letztens langeweile gehabt und eine Art Bildschirm Sperrung entwickelt. Sie funktioniert noch nicht gaaanz, aber wenn ein Leie an die Sperrung kommt, ist diese relativ sicher.
Code:
Spoiler anzeigen
#include <WindowsConstants.au3>
#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
Global $i = 1, $var = 0, $Input, $lbl, $falsches_pass = 0
Global $Fenster = GUICreate("Screen Lock", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
GUISetBkColor(0x323232)
Global $lbl = GUICtrlCreateLabel("Passwort wählen: ", @DesktopWidth / 2 - 330, @DesktopHeight / 2 - 103, 300, 30)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 18, 100, 0,"Courier New")
Global $Input = GUICtrlCreateInput("", @DesktopWidth / 2 - 70, @DesktopHeight / 2 - 100, 250, 20, $ES_PASSWORD)
GUICtrlSetFont(-1, 12, 100, 0,"Courier New")
GUISetState()
while 1
Global $Passwort = GUICtrlRead($Input)
$msg = GUIGetMsg()
Select
case _IsPressed("0D")
GUICtrlDelete($Input)
save()
case _IsPressed("1B")
Global $maus_pos = MouseGetPos()
$Black_Win = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
GUISetBkColor(0x000000)
GUISetCursor(16)
GUISetState()
Do
$maus_pos_new = MouseGetPos()
Until $maus_pos[1] <> $maus_pos_new[1] And $maus_pos[0] <> $maus_pos_new[0]
GUIDelete()
Case $msg = $Input
GUICtrlSetStyle($Input, $ES_PASSWORD)
EndSelect
WEnd
func save()
Global $Input_neu = GUICtrlCreateInput("", @DesktopWidth / 2 - 70, @DesktopHeight / 2 - 100, 250, 20, $ES_PASSWORD)
GUICtrlSetFont(-1, 12, 100, 0,"Courier New")
GUICtrlSetState(-1, $GUI_FOCUS)
GUICtrlSetData($lbl, "Passwort eingeben: ")
$min = @SEC
sleep(200)
while 1
GUISetState(@SW_MAXIMIZE)
$Passwort_eingabe = GUICtrlRead($Input_neu)
Select
case _IsPressed("0D") And $Passwort = $Passwort_eingabe
Exit
case _IsPressed("0D") And $Passwort <> $Passwort_eingabe
GUICtrlCreateLabel("Falsches Passwort", @DesktopWidth / 2 - 70, @DesktopHeight / 2 - 70, 200, 30)
GUICtrlSetFont(-1, 14, 200, 2, "Courier New")
GUICtrlSetColor(-1, 0xFF0000)
$falsches_pass += 1
GUICtrlSetData($Input_neu, "")
sleep(100)
case _IsPressed("1B")
Global $maus_pos = MouseGetPos()
$Black_Win = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
GUISetBkColor(0x000000)
GUISetCursor(16)
GUISetState()
Do
$maus_pos_new = MouseGetPos()
Until $maus_pos[1] <> $maus_pos_new[1] And $maus_pos[0] <> $maus_pos_new[0]
GUIDelete()
case $falsches_pass >= 3
$Black_Win = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
GUISetBkColor(0x000000)
GUISetCursor(16)
GUISetState()
Do
$var += 1
sleep(100)
GUISetState(@SW_MAXIMIZE, $Black_Win)
Until $var = 100
GUIDelete()
$falsches_pass = 0
EndSelect
WEnd
EndFunc
Für Verbesserungen, Meinungen, Kritiken, etc. bin ich immer offen.
mfg
hauke96