fix: Shift and Ctrl are now explicitly tracked, emergency unlock fixed.

This commit is contained in:
serversdwn
2026-02-26 17:54:25 +00:00
parent 3e625a9669
commit 98cbd953db

12
main.py
View File

@@ -38,6 +38,10 @@ HC_ACTION = 0
VK_F12 = 0x7B
VK_CONTROL = 0x11
VK_SHIFT = 0x10
VK_LSHIFT = 0xA0
VK_RSHIFT = 0xA1
VK_LCONTROL = 0xA2
VK_RCONTROL = 0xA3
LLKHF_INJECTED = 0x10
LLMHF_INJECTED = 0x01
@@ -130,14 +134,14 @@ def keyboard_proc(n_code, w_param, l_param):
injected = (kb.flags & LLKHF_INJECTED) != 0
if not injected:
if w_param in (WM_KEYDOWN, WM_SYSKEYDOWN):
if kb.vkCode == VK_CONTROL:
if kb.vkCode in (VK_CONTROL, VK_LCONTROL, VK_RCONTROL):
ctrl_down = True
elif kb.vkCode == VK_SHIFT:
elif kb.vkCode in (VK_SHIFT, VK_LSHIFT, VK_RSHIFT):
shift_down = True
elif w_param in (WM_KEYUP, WM_SYSKEYUP):
if kb.vkCode == VK_CONTROL:
if kb.vkCode in (VK_CONTROL, VK_LCONTROL, VK_RCONTROL):
ctrl_down = False
elif kb.vkCode == VK_SHIFT:
elif kb.vkCode in (VK_SHIFT, VK_LSHIFT, VK_RSHIFT):
shift_down = False
if cat_mode and not injected:
# Emergency unlock combo: Ctrl+Shift+F12