#include <WindowsConstants.au3>
#include <WinAPI.au3>
OnAutoItExitRegister("OnClose")
$hStub_MouseProc = DllCallbackRegister("MouseProc", "long", "int;wparam;lparam")
$hHook_Mouse = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($hStub_MouseProc), _WinAPI_GetModuleHandle(0))
$hStub_KeyProc = DllCallbackRegister("KeyProc", "long", "int;wparam;lparam")
$hHook_Keyboard = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hStub_KeyProc), _WinAPI_GetModuleHandle(0))
Sleep(5000)
Func KeyProc($nCode, $wParam, $lParam)
Local $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHook_Keyboard, $nCode, $wParam, $lParam)
If $wParam = $WM_KEYDOWN Then Return 1
Return _WinAPI_CallNextHookEx($hHook_Keyboard, $nCode, $wParam, $lParam)
EndFunc
Func MouseProc($nCode, $wParam, $lParam)
Local $tBUTHOOKS = DllStructCreate($tagNMMOUSE, $lParam)
If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHook_Mouse, $nCode, $wParam, $lParam)
If $wParam = $WM_KEYDOWN Then Return 1
Return _WinAPI_CallNextHookEx($hHook_Mouse, $nCode, $wParam, $lParam)
EndFunc
Func OnClose()
_WinAPI_UnhookWindowsHookEx($hHook_Keyboard)
DllCallbackFree($hStub_KeyProc)
_WinAPI_UnhookWindowsHookEx($hHook_Mouse)
DllCallbackFree($hStub_MouseProc)
EndFunc