Wie kann ich Mausbewegungen/Tastatur Eingaben sperren, bis auf eine Inputbox?
Eingaben sperren bis auf Inputbox
-
- [ offen ]
-
CodaXYZ -
22. Dezember 2010 um 15:01 -
Geschlossen -
Erledigt
-
-
Für was brauchst du dann die Inputbox wenn man eh nix eingeben kann?
Und kurze nebenfrage: Für was brauchst du das? Etwas dazu erklären evtl?
-
Die Inputbox soll eine Passworteingabe sein und man muss das Passwort ja irgendwie eingeben können.
edit:
Um meinen PC zu sperren und nur zugänglich zu machen, wenn man das richtige Passwort eingibt. -
Aha ... also in deinem Fenster soll quasi keine anderen eingaben möglich sein. Habs verstanden
Also ich kann dir sagen wie du andere Controls de- / aktivierst. Aber die Maus und Tastatur komplett sperren für die anderen Controls? Keine Ahnung^^
Control deaktivieren: ControlDisable
Control aktivieren: ControlEnable
Es gibt BlockInput ... allerdings blockt es da alles. Also keine eingabe mehr möglich, egal in welchem Input / control. Allerdings geht es über strg + alt + entf wieder aufzuheben.
-
Leg einfach ne GUI über dein kompletten Monitor und setzt diese dauerhaft ontop und sperr den TaskManager
-
- Offizieller Beitrag
Hier eine Lösung. Solange das Fenster aktiv ist funktioniert die Tastatur. Will man tricksen und z.B. mit Alt+Tab rausspringen, so geht das - aber hinterher ist keine Tastatureingabe mehr möglich.

Die Maus ist im Eingabefenster gefangen. Durch den Popup-Style läßt sich dieses auch nicht verschieben.Spoiler anzeigen
[autoit]#include <WinAPI.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
#Include <Misc.au3>OnAutoItExitRegister('OnAutoItExit')
[/autoit] [autoit][/autoit] [autoit]Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]
Global $hStub_KeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
Global $hmod = _WinAPI_GetModuleHandle(0)
Global $hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hStub_KeyProc), $hmod)
Global $active = FalseGlobal $gui
[/autoit] [autoit][/autoit] [autoit]
_Main()Func _Main()
[/autoit] [autoit][/autoit] [autoit]
Local $input, $btn, $pos, $sRead, $sPass = 'Passwort'
$gui = GUICreate('Passwort Eingabe', 180, 70, -1, -1, $WS_POPUP)
$input = GUICtrlCreateInput('', 10, 10, 160, 20)
$btn = GUICtrlCreateButton('OK', 10, 40, 40, 20)
GUISetState()$pos = WinGetPos($gui)
[/autoit] [autoit][/autoit] [autoit]
_MouseTrap($pos[0], $pos[1], $pos[0] + $pos[2], $pos[1] + $pos[3])While 1
[/autoit] [autoit][/autoit] [autoit]
If BitAND(WinGetState($gui),
Then
$active = True
Else
$active = False
EndIf
Switch GUIGetMsg()
Case $btn
$sRead = GUICtrlRead($input)
If $sRead == $sPass Then
_Exit()
Else
GUICtrlSetData($input, '')
EndIf
EndSwitch
WEnd
EndFuncFunc _Exit()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc;===========================================================
[/autoit] [autoit][/autoit] [autoit]
; callback function
;===========================================================
Func _KeyProc($nCode, $wParam, $lParam)
If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
If Not $active Then Return -1 ; Tastatureingabe außerhalb Input unmöglich
Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
EndFuncFunc OnAutoItExit()
[/autoit]
_WinAPI_UnhookWindowsHookEx($hHook)
DllCallbackFree($hStub_KeyProc)
EndFunc -
bei mir funktioniert das mit dem blockieren der tasten wenn das fenster inaktiv ist nicht
liegt es daran dass ich windows 7 hab und du (wie man deiner signatur entnehmen kann
) XP?