Skip to content

Commit 7fe1280

Browse files
authored
Merge 187b871 into c29b291
2 parents c29b291 + 187b871 commit 7fe1280

1 file changed

Lines changed: 21 additions & 1 deletion

File tree

source/winInputHook.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,32 @@ class MSLLHOOKSTRUCT(Structure):
4141
keyDownCallback=None
4242
keyUpCallback=None
4343
mouseCallback=None
44+
keyboardModifiers = frozenset(
45+
[
46+
winUser.VK_LCONTROL,
47+
winUser.VK_RCONTROL,
48+
winUser.VK_CONTROL,
49+
winUser.VK_LSHIFT,
50+
winUser.VK_RSHIFT,
51+
winUser.VK_SHIFT,
52+
winUser.VK_LMENU,
53+
winUser.VK_RMENU,
54+
winUser.VK_MENU,
55+
winUser.VK_LWIN,
56+
winUser.VK_RWIN,
57+
winUser.VK_INSERT,
58+
winUser.VK_CAPITAL,
59+
]
60+
)
4461

4562
@WINFUNCTYPE(c_long,c_int,WPARAM,LPARAM)
4663
def keyboardHook(code,wParam,lParam):
47-
if watchdog.isAttemptingRecovery or code!=HC_ACTION:
64+
if code != HC_ACTION:
4865
return windll.user32.CallNextHookEx(0,code,wParam,lParam)
4966
kbd=KBDLLHOOKSTRUCT.from_address(lParam)
67+
# If watchdog is currently attempting recovery, then only handle events related to keyboard modifiers:
68+
if watchdog.isAttemptingRecovery and kbd.vkCode not in keyboardModifiers:
69+
return windll.user32.CallNextHookEx(0, code, wParam, lParam)
5070
if keyUpCallback and kbd.flags&LLKHF_UP:
5171
if not keyUpCallback(kbd.vkCode,kbd.scanCode,bool(kbd.flags&LLKHF_EXTENDED),bool(kbd.flags&LLKHF_INJECTED)):
5272
return 1

0 commit comments

Comments
 (0)