fix: Shift and Ctrl are now explicitly tracked, emergency unlock fixed.
This commit is contained in:
12
main.py
12
main.py
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user