26 lines
976 B
Python
26 lines
976 B
Python
from keyboard._winkeyboard import CallNextHookEx, LowLevelKeyboardProc, GetModuleHandleW, SetWindowsHookEx, UnhookWindowsHookEx, GetMessage, TranslateMessage, DispatchMessage, DWORD, c_int, LPMSG
|
|
import atexit
|
|
|
|
LLKHF_INJECTED = 0x00000010
|
|
LLMHF_INJECTED = 0x00000001
|
|
|
|
def remove_key_flags():
|
|
def low_level_handler(nCode, wParam, lParam):
|
|
lParam.contents.flags &= ~LLKHF_INJECTED
|
|
lParam.contents.flags &= ~LLMHF_INJECTED
|
|
return CallNextHookEx(None, nCode, wParam, lParam)
|
|
|
|
WH_KEYBOARD_LL = c_int(13)
|
|
keyboard_callback = LowLevelKeyboardProc(low_level_handler)
|
|
handle = GetModuleHandleW(None)
|
|
thread_id = DWORD(0)
|
|
keyboard_hook = SetWindowsHookEx(WH_KEYBOARD_LL, keyboard_callback, handle, thread_id)
|
|
atexit.register(UnhookWindowsHookEx, keyboard_callback)
|
|
|
|
if __name__ == "__main__":
|
|
remove_key_flags()
|
|
msg = LPMSG()
|
|
while not GetMessage(msg, 0, 0, 0):
|
|
TranslateMessage(msg)
|
|
DispatchMessage(msg)
|