Maus und Tastatur sperren

  • Hallo zusammen,

    folgendes Problem.
    Man nehme:

    - Ein Mediacenter im Wohnzimmer (zum DVB-T/DVD schauen und MP3 hören) mit schnurrloser Tastatur (incl. Touchpad) unter dem Wohnzimmertisch.
    - Ein 2 jähriger der gerade seine begeisterung für Tastaturen und Mäuse entdeckt.
    - gelöschte Dateien und geänderte Einstellungen.


    Ich suche einfach die möglichkeit per Hotkey die Tastatur und die Maus zu 'sperren' (und natürlich per Hotkey wieder zu entsperren).

    Die Logik drum rum bekomme ich hin (das setzen von Hotkeys etc.) - aber das sperren von Maus und Tastatur (bis auf besagten Hotkey) bereitet mir Kopfschmerzen :(

    Jemande eine Idee oder einen Lösungsansatz?

    in diesem Sinne

    nachtmacher

    (..) und die Welt schaut auf und schreit "Rette uns!" ... und ich flüstere "Nein"

  • *love this one*

    Wenn jemand eine möglichkeit findet, den Rechner wieder mit F9 zu entsperren, wäre ich wunschlos glücklich - das hier ist absolut wunderbar!
    Ich danke vielmals (für den schnellen Support).

    in diesem Sinne

    nachtmacher

    (..) und die Welt schaut auf und schreit "Rette uns!" ... und ich flüstere "Nein"

  • Hallo,

    ich benutze schon seit Jahren 'mimlock98' - und das nicht nur für Kleinkinder :-). Es hat mit AutoIt nichts zu tun, aber ist einfach und sicher. Maus und Tastatur sind gesperrt (inkl. Strg-Alt-Entf!). Das Passwort kann ja kurz sein, damit es schneller geht zum entsperren.

    Der Aufruf per Hotkey über AutoIt sollte einfach machbar sein.

    Vielleicht ist das eine einfache, bereits fertige Lösung für Deine Aufgabe.

    Viele Grüße

    P.S: Das Programm ist Freeware und über Suchmaschinen zu finden.

  • hallo


    machs doch so:


    hotkeyset ("{f9}","_block")
    while 1
    sleep (100)
    wend
    func _block()
    blockinput (1)
    winwaitactive ("Windows Task-Manager")
    blockinput (0)
    winclose ("Windows Task-Manager")
    endfunc

    du kannst das script mit f9 auslösen und mit ctrl alt del schliesen....


    hope dhis hälps


    derda

    Einmal editiert, zuletzt von derda (29. April 2007 um 17:49)

    • Offizieller Beitrag

    Hi,

    oder sowas:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>
    #include <File.au3>
    #include <misc.au3>
    #notrayicon
    $VER = "2.0"
    Opt("WinTitleMatchMode", 4)
    Global $KEY = "111"
    Global $codeFestgelegt = False, $inputCode, $splash = 0
    code()
    HotKeySet("!{TAB}", "doNothing")
    HotKeySet("{TAB}", "doNothing")
    HotKeySet("{ESC}", "doNothing")
    HotKeySet("{F9}", "code")
    HotKeySet("!^{F9}", "OnAutoItExit") ; STRG+ALT+F9 Sofort-Exit
    $SAFE = GUICreate('')
    GUISetState($WS_EX_TRANSPARENT, $SAFE)
    $VAULT = GUICreate(" *Mega*", @DesktopWidth, @DesktopHeight, -1, -1, -1, -1, $SAFE)
    GUISetState()
    WinMinimizeAll()
    WinSetTrans(" *Mega*", "", 1)
    $LOCK = DllOpen("user32.dll")
    WinSetOnTop(" *Mega*", "", 1)

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

    ; The script
    $startPath = "c:\Downloads\AutoIt-Skripte\Entwicklung\ForumTests\MegaBlock\NotePadTut.exe"

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

    While 1
    For $TRY = 1 To 91
    If _IsPressed($TRY, $LOCK) Or _IsPressed("0D", $LOCK) Then
    doNothing()
    EndIf
    ToolTip("Protected by, *Mega* v" & $VER & " | " & @HOUR & ":" & @MIN & ":" & @SEC, 5, 5)
    Next
    _MouseTrap(95, 18, 140, 22)
    WinSetOnTop(" *Mega*", "", 1)
    Sleep(1) ; erhöhen um CPU zu sparen? Sicherheit geht dann verloren
    WEnd

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

    Func code()
    $inputCode = InputBox(" *Mega*", "Bitte Passwort/Code eingeben: ", "", "*10", 150, 100, 50, 50, 10)

    If $codeFestgelegt = False Then
    If $inputCode = $KEY Then
    secure()
    $codeFestgelegt = True
    Return
    Else
    MsgBox(64, " *Mega*", "Falscher SperrCode", 3)
    Exit
    EndIf
    Else
    If $inputCode = $KEY Then
    DllClose($LOCK)
    SplashOff()
    MsgBox(64, "Info - Administrator", "Dieser PC wurde freigegeben!" & @LF & @LF & _
    "Tel.: XXXX" & @LF & _
    "Email: [email='Mega@xxx.com'][/email]" & @LF & _
    @LF & _
    "Mega", 3)
    _MouseTrap()
    Sleep(2000)
    Exit
    Else
    WinSetOnTop(" *Mega*", "", 1)
    Return
    EndIf
    EndIf
    EndFunc ;==>code

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

    Func secure()
    WinMinimizeAll()
    ;Hide Taskbar
    DllCall("WinLockDll.dll", "Int", "Taskbar_Show_Hide", "Int", "0")
    ;Disable CrtlAltDel
    $splash = SplashTextOn("", "Administrator : Dieser PC ist gesperrt!" & @LF & @LF & _
    "Tel.: XXXX" & @LF & @LF & _
    "Email: [email='Mega@xxx.com'][/email]" & @LF & _
    @LF & @LF & _
    "Mega", _
    550, @DesktopHeight / 2, 1, 500, 1, 5, 16, 600)
    DllCall("WinLockDll.dll", "Int", "CtrlAltDel_Enable_Disable", "Int", "0")
    DllCall("WinLockDll.dll", "Int", "Desktop_Show_Hide", "Int", "0")
    EndFunc ;==>secure

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

    ;DllCall("WinLockDll.dll", "Int", "Process_Desktop", "str", "MyDesktop2", "str", "cmd.exe")

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

    Func OnAutoItExit()
    WinMinimizeAllUndo()
    _MouseTrap()
    DllCall("WinLockDll.dll", "Int", "Desktop_Show_Hide", "Int", "1")
    DllCall("WinLockDll.dll", "Int", "CtrlAltDel_Enable_Disable", "Int", "1")
    DllCall("WinLockDll.dll", "Int", "Taskbar_Show_Hide", "Int", "1")
    SplashOff()
    Exit (0)
    EndFunc ;==>OnAutoItExit

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

    Func doNothing()
    _MouseTrap(95, 18, 140, 22)
    WinSetState("Windows Task-Manager", "", @SW_HIDE)
    WinSetOnTop(" *Mega*", "", 1)
    EndFunc ;==>doNothing

    [/autoit]

    So long,

    Mega

  • @mega:
    nicht schlecht, das Tool würde mir erlauben trotz Tastatur/Maus-Sperre noch AutoIt-Scripte auszuführen. Der Mimlock98 blockt selbst controlsend-Aufrufe.

    Leider gibt es aber hier eine Lücke: Die Windows-Tasten (Win-E für Explorer bzw. Win-R für 'Ausführen' sind nicht geblockt. Man kann sie zwar schlecht bedienen, weil Tab, Esc gesperrt sind, aber ich habe es geschafft dennoch Daten zu löschen. Ggf. könnte man auch von einem Stick ein 'Abschußprogramm' aufrufen. (Programmiert in AutoIt :) )

    Aber für eine Kindersicherung sollte es allemal genügen.

    Viele Grüße
    Carsten

  • Hallo Mega,

    ach tatsächlich, der Start-Aufruf über die Win-Taste oder Strg-Esc (es gibt keine Ausrede *lacht*) in Verbindung mit den Pfeiltasten geht ja auch.

    Hier kannst Du nachlesen wie Du die Win-Taste und die Rollen-Taste vertauschen kannst. Vielleicht hilft dir das für einen Test?
    http://www.pcwelt.de/public/Scancode.HTML

    Ob sich der Aufwand allerdings lohnt, ein wasserdichtes System über autoit zu erhalten .....???

    Viele Grüße
    Carsten

  • Ich schließe mich hier mal an weil ich ein ähnliches Problem habe.

    In meinen Scripts benutze ich BlockInput() das man aber problemlos mit Strg+Alt+Entf wieder aushebeln kann. Ich suche jetzt eine Möglichkeit mit der ich die Eingabe blocken kann ohne das mir jemand die Scripte mit der Tastenkombi Strg+Alt+Entf wieder aushebelt.

    Es geht bei uns um Installationsscripte die ein Benutzer nicht unterbrechen sollte. Ein paar haben das nämlich schon spitz bekommen wie man die Scripte aushelbelt um uns zu nerven.

    Wie lös ich das am besten?

    LG

    Schnuecks

  • Eine andere Möglichkeit gibt es nicht?

    Kann man das nicht irgendwie unterbinden, kann man nicht bestimmte Tasten sperren oder sowas, sorry für die blöden Fragen.

    @ManuIt
    Die Scripte werden automatisch bei Anmeldung gestartet, ich renne bestimmt nicht zu ~200 Personen im Haus ^^


    Wenn es halt nicht geht gehts halt nicht.

    LG

    Schnuecks

  • Hi,

    pee's Vorschlag sollte ohne Probleme klappen. Hier mal ein einfaches Beispiel:

    Spoiler anzeigen
    [autoit]

    BlockInput(1)
    While 1
    If ProcessExists("taskmgr.exe") Then
    ProcessClose("taskmgr.exe")
    BlockInput(1)
    EndIf
    Sleep(20)
    WEnd
    BlockInput(0)

    [/autoit]


    Aber VORSICHT! falls es einwandfrei klappt, läufst du damit in eine Endlosschleife und kannst Deinen Rechner nicht mehr bedienen. Also bau besser noch einen Timer ein!

  • Die Lösung gibt es auch:


    Download: http://www.autoit.de/attachment.php?attachmentid=1349

    Einmal editiert, zuletzt von progandy (10. September 2007 um 16:36)