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