Computer blockieren

  • Und das nächste Tool:

    GLi Block blockiert Maus- und Tastatureingaben ( BlockInput(1)), bis ein USB-Stick eingesteckt wurde. Das ganze mit Stickmanagment, d.h., man kann auch mehrere Sticks definieren. Der USB-Stick wird durch seine Seriennummer erkannt, was, soweit ich weiß, schwer zu umgehen ist.
    Dabei sieht man aber weiter alles, was auf dem Bildschirm passiert ( z.B. Nero, Defrag,...(anders als z.B. bei [WIN]+[L])).
    Es ist außerdem möglich, den PC nur für eine bestimmte Zeit zu blockieren, die dann auch angezeigt wird.
    Natürlich ist es nicht möglich, Block mit Strg+Alt+Entf zu beenden.

    Momentan gibt es nur einen Bug: Wenn man nicht eine Zeit lang blocken will, muss man, obwohl es nicht so scheint, eine Zeit reinschreiben, eine hohe halt, z.B. 1000000000000.

    Gibt es (außer dem Bugfix) noch andere Vorschläge?? ?(

    Download im Heise Software-Verzeichnis

    Den Quelltext hab ich leider nicht mehr gefunden, ihr könnt das Programm aber decompilen, dürfte kein PW sein. :rock:

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

  • Gibt es (außer dem Bugfix) noch andere Vorschläge??

    Welcher Vorschlag war es denn, denn BugFix fix gepostet hat? ;)

    Gruss,
    Crazy-A.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl


  • Das Prog funktioniert super. Aber wenn ich es decompilen will, sagt der Decompiler, dass der Script nicht in autoit geschrieben wurde.

    Ich habe mal versucht, das Prog. in Autoit nachzubauen, schaffe es aber nicht richtig. Ich habe es bisher so weit, dass es Sticks usw. einliest und eine Auswahl erstellt. Ich weiß aber nicht, wie ich die Möglichkeiten auseinander halten kann. Bisher haben nämlich alle die gleiche Steuervariable.

    Hier der (unfertige) Code:

    [autoit]

    #include
    GUICreate("Drives", 400, 400)
    $var = DriveGetDrive( "REMOVABLE" )
    GUICtrlCreateGroup("Drives", 10, 10, 150, Number(22*$var[0]+20))
    $radio = 30
    If NOT @error Then
    MsgBox(4096,"", "Es wurden " & $var[0] & " Laufwerke gefunden")
    For $i = 1 to $var[0]
    $ser = DriveGetSerial($var[$i])
    MsgBox(4096,"Laufwerk " & $i, $var[$i])
    $name = DriveGetLabel($var[$i])
    $seri = GUICtrlCreateRadio("Drive "&$var[$i]&"("&$name&")", 20, $radio)
    $radio = $radio+20
    Next
    ElseIf @error = 1
    MsgBox(0, "Fehler", "Es ist ein Fehler aufgetreten. Das Programm wird beendet.")
    Exit
    EndIf

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

    GuiSetState()
    While GuiGetMsg() <> $GUI_EVENT_CLOSE
    WEnd

    [/autoit]

    Xenobiologist : Wie kann man STRG+ALT+ENTF denn blocken?

  • Erstens:
    Das Script ist in Autoit geschrieben:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #region
    #AutoIt3Wrapper_icon=..\..\Visuelle Frachten\icons\Icons\Accessibilit‚.ico
    #AutoIt3Wrapper_outfile=GLi Block.exe
    #AutoIt3Wrapper_compression=4
    #AutoIt3Wrapper_res_comment=GLi Block - ultimate system blocker
    #AutoIt3Wrapper_res_description=GLi Block
    #AutoIt3Wrapper_res_fileversion=1.0.0.0
    #AutoIt3Wrapper_res_legalcopyright=2008 GLi
    #endregion
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #Include <Misc.au3>
    #include <Array.au3>
    #Include <GuiListBox.au3>
    Opt("MustDeclareVars", 0)
    Opt("GUIOnEventMode", 1)
    GUIRegisterMsg($GUI_EVENT_CLOSE, "qui")
    Global $DEVICES[1]
    Global $ITIMEACTIVE, $ITIME, $IRETURNACTIVE, $IRETURN, $IOUTPUT, $GUIID, $LISTBOXMAINGUI
    Global $TIMEACTIVECB, $TIMEINPUT, $RETURNACTIVECB, $RETURNINPUT, $BLOCKBUTTON, $OUTPUTCB, $RETURNLABEL, $TIMELABEL
    Global $OLDRIVE = 1E+21, $TIME, $EXIT, $MGP, $FAILED, $STAMP
    Global $ISINSIDEYET = 0, $NEWFILE, $DRIVES, $FILE, $FAILEDCOUNT, $INSIDEDRIVE, $OLDVALUE
    Global $MINIGUI, $MINIGUILABEL, $VERSION = "1.0.0.0", $DELBUTTON
    Global $DRIVESBOX, $SERIALBOX, $MANGUI, $DEVICESDESC, $SETUP, $GSETUP
    If _VERSIONCOMPARE(IniRead(@AppDataDir & "\GLi\block\settings.ini", "block", "versions", "0.0.0.0"), $VERSION) = -1 Then
    FileDelete(@AppDataDir & "\GLi\block\settings.ini")
    EndIf
    UPDATE()
    GUI()

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

    Func GUI()
    If Not FileExists(@AppDataDir & "\GLi\block\settings.ini") Or $DEVICES[0] = 0 Then
    SETUP()
    Return
    EndIf
    Dim $TIME, $STAMP, $DRIVE, $USE
    $GUIID = GUICreate("GLi Block", 395, 210)
    GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
    $LISTBOXMAINGUI = _GUICTRLLISTBOX_CREATE($GUIID, "", 5, 5, 385, 62)
    If IsArray($DEVICES) Then
    For $A = 1 To $DEVICES[0] Step 1
    _GUICTRLLISTBOX_ADDSTRING($LISTBOXMAINGUI, $DEVICESDESC[$A] & " ID=" & $DEVICES[$A])
    Next
    EndIf
    $TIMELABEL = GUICtrlCreateLabel("Time in seconds:", 5, 82, 100, 15)
    GUICtrlSetTip(-1, "Enter a time after which the system will be unblocked")
    $TIMEINPUT = GUICtrlCreateInput($ITIME, 110, 80, 280, 20)
    GUICtrlSetTip(-1, "Enter a time after which the system will be unblocked")
    $RETURNLABEL = GUICtrlCreateLabel("Tries:", 5, 132, 100, 15)
    GUICtrlSetTip(-1, "Enter a number of tries to unblock system without permission (strg-alt-del)" & @CRLF & "until windows will return to welcome screen")
    $RETURNINPUT = GUICtrlCreateInput($IRETURN, 110, 130, 280, 20)
    GUICtrlSetTip(-1, "Enter a number of tries to unblock system without permission (strg-alt-del)" & @CRLF & "until windows will return to welcome screen")
    $OUTPUTCB = GUICtrlCreateCheckbox("Output information while system is blocked", 5, 160, 285, 20)
    GUICtrlSetTip(-1, "Define if you want any information been displayed about unblocking the system")
    If $IOUTPUT = 1 Then GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetOnEvent(-1, "output")
    $DELBUTTON = GUICtrlCreateButton("Manage Devices", 5, 185, 95, 20)
    GUICtrlSetTip(-1, "Add or remove unblocking devices")
    GUICtrlSetOnEvent(-1, "manage")
    $BLOCKBUTTON = GUICtrlCreateButton("BLOCK!", 105, 185, 285, 20)
    GUICtrlSetTip(-1, "Start blocking your system")
    GUICtrlSetOnEvent(-1, "all")
    $TIMEACTIVECB = GUICtrlCreateCheckbox("Block for a specified time", 5, 60, 385, 20)
    GUICtrlSetTip(-1, "Define if you want your system to be blocked for a specified time")
    GUICtrlSetOnEvent(-1, "timeactivecb")
    If $ITIMEACTIVE = 1 Then
    GUICtrlSetState(-1, $GUI_CHECKED)
    Else
    GUICtrlSetState($TIMEINPUT, $GUI_DISABLE)
    GUICtrlSetState($TIMELABEL, $GUI_DISABLE)
    EndIf
    $RETURNACTIVECB = GUICtrlCreateCheckbox("Return to welcome screen after some tries", 5, 110, 385, 20)
    GUICtrlSetTip(-1, "Define if you want to return to welcome screen after" & @CRLF & "a specified number of unblocking tries without permission")
    GUICtrlSetOnEvent(-1, "returnactivecb")
    If $IRETURNACTIVE = 1 Then
    GUICtrlSetState(-1, $GUI_CHECKED)
    Else
    GUICtrlSetState($RETURNINPUT, $GUI_DISABLE)
    GUICtrlSetState($RETURNLABEL, $GUI_DISABLE)
    EndIf
    GUICtrlSetState($BLOCKBUTTON, $GUI_DEFBUTTON)
    GUICtrlSetState($BLOCKBUTTON, $GUI_FOCUS)
    GUISetState()
    $DELBUTONACTIVE = 0
    $EXITBUTONACTIVE = 0
    While 1
    Sleep(10)
    If CHECK() = 1 Then $INSIDEDRIVE = ""
    WEnd
    EndFunc

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

    Func CHECK()
    $DRIVES = DriveGetDrive("ALL")
    If IsArray($DRIVES) Then
    For $DO = 1 To $DRIVES[0] Step 1
    $DONE = 0
    For $A = 1 To $DEVICES[0] Step 1
    If DriveGetSerial($DRIVES[$DO]) = $DEVICES[$A] Then
    $INSIDEDRIVE = $DRIVES[$DO]
    GUICtrlSetState($BLOCKBUTTON, $GUI_DISABLE)
    GUICtrlSetData($BLOCKBUTTON, 'Please remove keymedium "' & $INSIDEDRIVE & '"')
    ExitLoop
    EndIf
    Next
    Next
    EndIf
    If $INSIDEDRIVE = "" Then Return
    While 1
    For $A = 1 To $DEVICES[0] Step 1
    $EXITLOOP = 0
    If Not DriveGetSerial($INSIDEDRIVE) = $DEVICES[$A] Then
    GUICtrlSetState($BLOCKBUTTON, $GUI_ENABLE)
    GUICtrlSetData($BLOCKBUTTON, "BLOCK!")
    GUICtrlSetState($BLOCKBUTTON, $GUI_DEFBUTTON)
    GUICtrlSetState($BLOCKBUTTON, $GUI_FOCUS)
    $EXITLOOP = 1
    ExitLoop
    EndIf
    If $EXITLOOP = 1 Then ExitLoop
    Next
    If $EXITLOOP = 1 Then ExitLoop
    Sleep(10)
    WEnd
    Return 1
    EndFunc

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

    Func MANAGE($SETUP = 0)
    If $SETUP = 1 Then Global $GSETUP = 1
    If $SETUP = 0 Then GUISetState(@SW_HIDE, $GUIID)
    Global $MANGUI = GUICreate("Manage Devices", 460, 200)
    GUISetOnEvent($GUI_EVENT_CLOSE, "abortmanage", $MANGUI)
    Global $DRIVESBOX = _GUICTRLLISTBOX_CREATE($MANGUI, "", 0, 20, 200, 150)
    Global $SERIALBOX = _GUICTRLLISTBOX_CREATE($MANGUI, "", 260, 20, 200, 150)
    GUICtrlCreateButton("Undo", 5, 175, 95, 20)
    GUICtrlSetTip(-1, "Restore previous settings")
    GUICtrlSetOnEvent(-1, "listboxes")
    GUICtrlCreateButton("Delete Settings", 105, 175, 95, 20)
    GUICtrlSetTip(-1, "Delete all Block settings")
    GUICtrlSetOnEvent(-1, "delsets")
    GUICtrlCreateButton("Cancel", 260, 175, 95, 20)
    If $SETUP = 0 Then GUICtrlSetOnEvent(-1, "abortmanage")
    If $SETUP = 1 Then GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetTip(-1, "Close this window without changing anything")
    GUICtrlCreateButton("OK", 360, 175, 95, 20)
    GUICtrlSetTip(-1, "Close this window and change device settings")
    GUICtrlSetOnEvent(-1, "saveman")
    GUICtrlSetFont(-1, 8.5, 600)
    GUICtrlCreateButton(">", 205, 70, 50, 20)
    GUICtrlSetTip(-1, "Add device to unblock list")
    GUICtrlSetOnEvent(-1, "add")
    GUICtrlSetFont(-1, 10, 900)
    GUICtrlCreateButton("<", 205, 95, 50, 20)
    GUICtrlSetTip(-1, "Remove device from unblock list")
    GUICtrlSetOnEvent(-1, "manrem")
    GUICtrlSetFont(-1, 10, 900)
    GUICtrlCreateLabel("All devices", 0, 4, 200, 15, $SS_CENTER)
    GUICtrlSetTip(-1, "Lists all available devices for unblocking which havn't been added yet")
    GUICtrlSetFont(-1, 9.5, 700)
    GUICtrlCreateLabel("Unblocking devices", 260, 4, 200, 15, $SS_CENTER)
    GUICtrlSetTip(-1, "Lists all unblocking devices")
    GUICtrlSetFont(-1, 9.5, 700)
    LISTBOXES()
    EndFunc

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

    Func ADD()
    $CURRENT = _GUICTRLLISTBOX_GETCURSEL($DRIVESBOX)
    If $CURRENT = -1 Then Return
    $TEXT = _GUICTRLLISTBOX_GETTEXT($DRIVESBOX, $CURRENT)
    _GUICTRLLISTBOX_ADDSTRING($SERIALBOX, $TEXT)
    _GUICTRLLISTBOX_DELETESTRING($DRIVESBOX, $CURRENT)
    EndFunc

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

    Func MANREM()
    $CURRENT = _GUICTRLLISTBOX_GETCURSEL($SERIALBOX)
    If $CURRENT = -1 Then Return
    $TEXT = _GUICTRLLISTBOX_GETTEXT($SERIALBOX, $CURRENT)
    _GUICTRLLISTBOX_ADDSTRING($DRIVESBOX, $TEXT)
    _GUICTRLLISTBOX_DELETESTRING($SERIALBOX, $CURRENT)
    EndFunc

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

    Func SAVEMAN()
    If $GSETUP = 0 Then IniDelete(@AppDataDir & "\GLi\block\settings.ini", "devices")
    $COUNT = _GUICTRLLISTBOX_GETCOUNT($SERIALBOX)
    IniWrite(@AppDataDir & "\GLi\block\settings.ini", "devices", "number", $COUNT)
    For $A = 0 To $COUNT - 1 Step 1
    $UNFORMTEXT = _GUICTRLLISTBOX_GETTEXT($SERIALBOX, $A)
    $FORMTEXT1 = StringSplit($UNFORMTEXT, "ID=", 1)
    IniWrite(@AppDataDir & "\GLi\block\settings.ini", "devices", $A + 1, $FORMTEXT1[$FORMTEXT1[0]])
    If StringInStr($UNFORMTEXT, ": ") Then
    $FORMTEXT2 = StringSplit($FORMTEXT1[1], ": ", 1)
    IniWrite(@AppDataDir & "\GLi\block\settings.ini", "devices", $A + 1 & "~", $FORMTEXT2[2])
    Else
    IniWrite(@AppDataDir & "\GLi\block\settings.ini", "devices", $A + 1 & "~", $FORMTEXT1[1])
    EndIf
    Next
    UPDATE()
    If $GSETUP = 0 Then
    $COUNT = _GUICTRLLISTBOX_GETCOUNT($LISTBOXMAINGUI)
    For $A = 0 To $COUNT - 1 Step 1
    _GUICTRLLISTBOX_DELETESTRING($LISTBOXMAINGUI, 0)
    Next
    If IsArray($DEVICES) Then
    For $A = 1 To $DEVICES[0] Step 1
    _GUICTRLLISTBOX_ADDSTRING($LISTBOXMAINGUI, $DEVICESDESC[$A] & " ID=" & $DEVICES[$A])
    Next
    EndIf
    GUIDelete($MANGUI)
    GUISetState()
    Else
    If @Compiled = 0 Then
    Run(@AutoItExe & ' "' & @ScriptFullPath & '"')
    Exit
    Else
    Run(@AutoItExe)
    Exit
    EndIf
    EndIf
    EndFunc

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

    Func ABORTMANAGE()
    If $GSETUP = 0 Then
    GUIDelete($MANGUI)
    GUISetState()
    Else
    Exit
    EndIf
    EndFunc

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

    Func LISTBOXES()
    For $A = 0 To _GUICTRLLISTBOX_GETCOUNT($SERIALBOX) + 1 Step 1
    _GUICTRLLISTBOX_DELETESTRING($SERIALBOX, 0)
    Next
    For $A = 0 To _GUICTRLLISTBOX_GETCOUNT($DRIVESBOX) + 1 Step 1
    _GUICTRLLISTBOX_DELETESTRING($DRIVESBOX, 0)
    Next
    $DRIVES = DriveGetDrive("ALL")
    For $A = 1 To $DRIVES[0] Step 1
    Local $ALREADY = 0
    For $B = 1 To $DEVICES[0] Step 1
    If $DEVICES[$B] = DriveGetSerial($DRIVES[$A]) Then $ALREADY = 1
    Next
    If DriveGetSerial($DRIVES[$A]) = "" Then $ALREADY = 1
    If $ALREADY <> 1 Then _GUICTRLLISTBOX_ADDSTRING($DRIVESBOX, $DRIVES[$A] & " " & DriveGetLabel($DRIVES[$A]) & " ID=" & DriveGetSerial($DRIVES[$A]))
    Next
    For $A = 1 To $DEVICES[0] Step 1
    $ALREADY = ""
    For $B = 1 To $DRIVES[0] Step 1
    If DriveGetSerial($DRIVES[$B]) = $DEVICES[$A] Then
    $ALREADY = $DRIVES[$B]
    ExitLoop
    EndIf
    Next
    If $ALREADY = "" Then
    _GUICTRLLISTBOX_ADDSTRING($SERIALBOX, $DEVICESDESC[$A] & " ID=" & $DEVICES[$A])
    Else
    _GUICTRLLISTBOX_ADDSTRING($SERIALBOX, $ALREADY & " " & DriveGetLabel($ALREADY) & " ID=" & $DEVICES[$A])
    EndIf
    Next
    GUISetState()
    EndFunc

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

    Func DELSETS()
    If MsgBox(52, "Warning!", "Do you really want to delete all settings?") <> 6 Then Return
    FileDelete(@AppDataDir & "\GLi\block\settings.ini")
    If @Compiled = 0 Then
    Run(@AutoItExe & ' "' & @ScriptFullPath & '"')
    Else
    Run(@AutoItExe)
    EndIf
    Exit
    EndFunc

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

    Func TIMEACTIVECB()
    If $ITIMEACTIVE = 1 Then
    IniWrite(@AppDataDir & "\GLi\block\settings.ini", "settings", "timeactive", 0)
    GUICtrlSetState($TIMEINPUT, $GUI_DISABLE)
    GUICtrlSetState($TIMELABEL, $GUI_DISABLE)
    $ITIMEACTIVE = 0
    Else
    IniWrite(@AppDataDir & "\GLi\block\settings.ini", "settings", "timeactive", 1)
    GUICtrlSetState($TIMEINPUT, $GUI_ENABLE)
    GUICtrlSetState($TIMELABEL, $GUI_ENABLE)
    $ITIMEACTIVE = 1
    EndIf
    EndFunc

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

    Func OUTPUT()
    If $IOUTPUT = 1 Then
    IniWrite(@AppDataDir & "\GLi\block\settings.ini", "settings", "output", 0)
    $IOUTPUT = 0
    Else
    IniWrite(@AppDataDir & "\GLi\block\settings.ini", "settings", "output", 1)
    $IOUTPUT = 1
    EndIf
    EndFunc

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

    Func RETURNACTIVECB()
    If $IRETURNACTIVE = 1 Then
    IniWrite(@AppDataDir & "\GLi\block\settings.ini", "settings", "returnactive", 0)
    GUICtrlSetState($RETURNINPUT, $GUI_DISABLE)
    GUICtrlSetState($RETURNLABEL, $GUI_DISABLE)
    $IRETURNACTIVE = 0
    Else
    IniWrite(@AppDataDir & "\GLi\block\settings.ini", "settings", "returnactive", 1)
    GUICtrlSetState($RETURNINPUT, $GUI_ENABLE)
    GUICtrlSetState($RETURNLABEL, $GUI_ENABLE)
    $IRETURNACTIVE = 1
    EndIf
    EndFunc

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

    Func SPECIALEVENTS()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Exit
    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    EndSelect
    EndFunc

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

    Func ALL()
    If StringIsDigit(GUICtrlRead($TIMEINPUT)) Then IniWrite(@AppDataDir & "\GLi\block\settings.ini", "settings", "time", GUICtrlRead($TIMEINPUT))
    If StringIsDigit(GUICtrlRead($RETURNINPUT)) Then IniWrite(@AppDataDir & "\GLi\block\settings.ini", "settings", "return", GUICtrlRead($RETURNINPUT))
    GUIDelete($GUIID)
    $ITIMEACTIVE = IniRead(@AppDataDir & "\GLi\block\settings.ini", "settings", "timeactive", 0)
    $ITIME = IniRead(@AppDataDir & "\GLi\block\settings.ini", "settings", "time", 60)
    $IRETURNACTIVE = IniRead(@AppDataDir & "\GLi\block\settings.ini", "settings", "returnactive", 0)
    $IRETURN = IniRead(@AppDataDir & "\GLi\block\settings.ini", "settings", "return", 10)
    $IOUTPUT = IniRead(@AppDataDir & "\GLi\block\settings.ini", "settings", "output", 1)
    $MINIGUI = GUICreate("locked", 320, 39, 3, 3, $WS_POPUPWINDOW)
    WinSetTrans("locked", "", 180)
    GUISetBkColor(16738816)
    GUICTRLSETDEFBKCOLOR(16738816)
    GUICTRLSETDEFCOLOR(16777215)
    $OLDRIVE = DriveGetDrive("ALL")
    $MINIGUILABEL = GUICtrlCreateLabel("", 0, 0, 320, 39, $SS_CENTER)
    GUICtrlSetFont($MINIGUILABEL, 8.5, 400, 0, "Tahoma")
    If $IOUTPUT = 1 Then GUISetState()
    If $IRETURNACTIVE = 0 Then
    $FAILED = ""
    Else
    $FAILED = $IRETURN
    EndIf
    If $ITIMEACTIVE = 0 Then
    $TIME = 1E+21
    Else
    $TIME = $ITIME
    EndIf
    $TIME *= 1000
    $STAMP = TimerInit()
    $OLDVALUE = $TIME / 1000
    If $TIME = 1E+21 * 1000 Then
    GUICtrlSetData($MINIGUILABEL, "Mouse && Keyboard blocked..." & @CRLF & "Insert KeyMedium...")
    Else
    GUICtrlSetData($MINIGUILABEL, "Mouse && Keyboard blocked..." & @CRLF & "Insert KeyMedium..." & @CRLF & "Or wait " & $TIME / 1000 & " seconds...")
    EndIf
    BlockInput(1)
    $MGP = MouseGetPos()
    While TimerDiff($STAMP) < $ITIME * 1000
    $DRIVES = DriveGetDrive("ALL")
    For $A = 1 To $DRIVES[0] Step 1
    For $B = 1 To $DEVICES[0] Step 1
    If DriveGetSerial($DRIVES[$A]) = $DEVICES[$B] Then
    BlockInput(0)
    Exit
    ElseIf $OLDRIVE < $DRIVES[0] Then
    $OLDRIVE = $DRIVES[0]
    WRONG($DEVICES[$B], $DRIVES[$A])
    EndIf
    Next
    Next
    BLOCK()
    $OLDRIVE = $DRIVES[0]
    Sleep(10)
    WEnd
    BlockInput(0)
    Exit
    EndFunc

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

    Func WRONG($DRIVESER = "", $DRIVELET = "")
    Local $STAMP2 = TimerInit()
    While TimerDiff($STAMP2) < 1000
    For $A = 1 To $DRIVES[0] Step 1
    For $B = 1 To $DEVICES[0] Step 1
    If DriveGetSerial($DRIVES[$A]) = $DEVICES[$B] Then
    BlockInput(0)
    Exit
    EndIf
    Next
    Next
    BLOCK()
    Sleep(10)
    WEnd
    $FAILEDCOUNT += 1
    Local $STAMP2 = TimerInit()
    While TimerDiff($STAMP2) < 3000
    BLOCK(1)
    Sleep(10)
    WEnd
    BLOCK(0, 1)
    EndFunc

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

    Func BLOCK($LWRONG = 0, $RESTORE = 0)
    BlockInput(1)
    If ProcessExists("taskmgr.exe") Then
    ProcessClose("taskmgr.exe")
    $FAILEDCOUNT += 1
    EndIf
    If $FAILED <> "" And $FAILEDCOUNT >= $FAILED Then
    Run("rundll32.exe user32.dll,LockWorkStation")
    BlockInput(0)
    Exit
    EndIf
    If $RESTORE = 1 Then GUICtrlSetFont($MINIGUILABEL, 8.5, 400, 0, "Tahoma")
    MouseMove($MGP[0], $MGP[1], 0)
    If $TIME <> 1E+21 * 1000 Then
    If $TIME / 1000 - Round(TimerDiff($STAMP) / 1000) < $OLDVALUE Or $RESTORE = 1 Then
    $OLDVALUE = $TIME / 1000 - Round(TimerDiff($STAMP) / 1000)
    If $LWRONG = 1 Then
    GUICtrlSetData($MINIGUILABEL, "WRONG MEDIUM" & @CRLF & $OLDVALUE & " seconds...")
    GUICtrlSetFont($MINIGUILABEL, 12, 700)
    Else
    GUICtrlSetData($MINIGUILABEL, "Mouse && Keyboard blocked..." & @CRLF & "Insert KeyMedium..." & @CRLF & "Or wait " & $OLDVALUE & " seconds...")
    EndIf
    EndIf
    ElseIf $TIME = 1E+21 * 1000 Then
    If $LWRONG = 1 Then
    GUICtrlSetData($MINIGUILABEL, "WRONG MEDIUM")
    GUICtrlSetFont($MINIGUILABEL, 12, 700)
    ElseIf $RESTORE = 1 Then
    GUICtrlSetData($MINIGUILABEL, "Mouse && Keyboard blocked..." & @CRLF & "Insert KeyMedium...")
    EndIf
    EndIf
    EndFunc

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

    Func SETUP()
    DirCreate(@AppDataDir & "\GLi\block")
    IniWrite(@AppDataDir & "\GLi\block\settings.ini", "block", "versions", "1.0.0.0")
    MANAGE(1)
    MsgBox(64, "GLi Block", "Please define unblocking devices!")
    While 1
    Sleep(10)
    WEnd
    EndFunc

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

    Func UPDATE()
    Global $DEVICES[1]
    For $A = 1 To IniRead(@AppDataDir & "\GLi\block\settings.ini", "devices", "number", 0) Step 1
    _ARRAYADD($DEVICES, IniRead(@AppDataDir & "\GLi\block\settings.ini", "devices", $A, ""))
    Next
    If IsArray($DEVICES) Then
    $DEVICES[0] = UBound($DEVICES) - 1
    EndIf
    Global $DEVICESDESC[1]
    For $A = 1 To IniRead(@AppDataDir & "\GLi\block\settings.ini", "devices", "number", 0) Step 1
    _ARRAYADD($DEVICESDESC, IniRead(@AppDataDir & "\GLi\block\settings.ini", "devices", $A & "~", ""))
    Next
    If IsArray($DEVICESDESC) Then
    $DEVICESDESC[0] = UBound($DEVICESDESC) - 1
    EndIf
    $ITIMEACTIVE = IniRead(@AppDataDir & "\GLi\block\settings.ini", "settings", "timeactive", 0)
    $ITIME = IniRead(@AppDataDir & "\GLi\block\settings.ini", "settings", "time", 60)
    $IRETURNACTIVE = IniRead(@AppDataDir & "\GLi\block\settings.ini", "settings", "returnactive", 0)
    $IRETURN = IniRead(@AppDataDir & "\GLi\block\settings.ini", "settings", "return", 10)
    $IOUTPUT = IniRead(@AppDataDir & "\GLi\block\settings.ini", "settings", "output", 1)
    EndFunc

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

    Func QUI()
    Exit
    EndFunc

    [/autoit]


    Zu 2.)
    Ja, guck ich mir demnächst mal an.
    Aber wichtig ist ja auch, dass man den Desktop noch sehen kann.

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

  • Ach, und:
    Strg+Alt+Entf blocken kann man, indem man ENTWEDER: den Taskmanager in der Registry deaktiviert, dann kommt aber son hässliches Fenster.
    ODER, wie ich es mache:

    [autoit]

    ProcessClose("Taskmgr.exe")

    [/autoit]

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

  • Wollt ich nur mal schreiben, vor ein paar Tagen hab ich das Programm nochmal in ner Computerzeitschrift gesehen (weiß nicht mehr welche es war). Super Arbeit, weiter so ;)

  • Hm, das liegt wohl daran, dass in den neueren AutoIt-Versionen an den Includes was geändert wurde. Für $SS_CENTER muss StaticConstants.au3 eingebunden werden. Also einfach bei den Includes

    [autoit]

    #include <StaticConstants.au3>

    [/autoit]

    einfügen ;)

  • Es kommt wie gesagt bald eine neue Version ;)
    Abwarten und Tee trinken. Im Zweifelsfall: Die auf der Homepage veröffentlichen exes sind natürlich immer lauffähig. (allerdings hat die aktuelle version noch einen Bug: die Zeitfunktion geht nicht...)

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