Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #RequireAdmin
- Global $hKeyProc = DllCallbackRegister("_Keyboard_Hook", "long", "int;wparam;lparam")
- Global $Hook = DllCall("user32.dll", "handle", "SetWindowsHookEx", "int", 13, "ptr", DllCallbackGetPtr($hKeyProc), "handle", DllCall("kernel32.dll", "handle", "GetModuleHandleW", "ptr", 0)[0], "dword", 0)[0] ;13:WM_KEYBOARD
- Run("Notepad")
- While 1
- Sleep(50)
- WEnd
- Func _Keyboard_Hook($nCode, $wParam, $lParam)
- Local $KEYHOOK = DllStructCreate("dword vkCode;dword scanCode;dword flags;dword time;ulong_ptr dwExtraInfo", $lParam)
- Local $vkCode = DllStructGetData($KEYHOOK, "vkCode")
- If $nCode < 0 Then
- Return DllCall("user32.dll", "lresult", "CallNextHookEx", "handle", $Hook, "int", $nCode, "wparam", $wParam, "lparam", $lParam)[0]
- EndIf
- Switch $wParam
- Case 0x100 ;$WM_KEYDOWN, 0x104 = $WM_SYSKEYDOWN
- Switch $vkCode
- Case 0x70 To 0x78
- DllCall('user32.dll', 'int', 'keybd_event', 'int', $vkCode - 0xF, 'int', 0, 'int', 0, 'ptr', 0)
- DllCall('user32.dll', 'int', 'keybd_event', 'int', $vkCode - 0xF, 'int', 0, 'int', 0x0002, 'ptr', 0) ; KEYEVENTF_KEYUP
- Return 1
- Case 0x79
- DllCall('user32.dll', 'int', 'keybd_event', 'int', 0x60, 'int', 0, 'int', 0, 'ptr', 0)
- DllCall('user32.dll', 'int', 'keybd_event', 'int', 0x60, 'int', 0, 'int', 0x0002, 'ptr', 0) ; KEYEVENTF_KEYUP
- Return 1
- Case 0x30 To 0x39
- DllCall('user32.dll', 'int', 'keybd_event', 'int', 0x10, 'int', 0, 'int', 0, 'ptr', 0) ; Shift down
- DllCall('user32.dll', 'int', 'keybd_event', 'int', $vkCode, 'int', 0, 'int', 0, 'ptr', 0) ; $vkCode down
- DllCall('user32.dll', 'int', 'keybd_event', 'int', $vkCode, 'int', 0, 'int', 0x0002, 'ptr', 0) ; $vkCode Up
- DllCall('user32.dll', 'int', 'keybd_event', 'int', 0x10, 'int', 0, 'int', 0x0002, 'ptr', 0) ; Shift up
- Return 1 ; Kill
- Case 0x1B ; VK_ESC
- Exit
- EndSwitch
- ; Case Else
- ; Switch DllStructGetData($KEYHOOK, "flags")
- ; Case 0x20 ;$LLKHF_ALTDOWN
- ; ToolTip("ALT")
- ; Case 0x1 ;$LLKHF_EXTENDED
- ; ToolTip("EXTENDED")
- ; Case 0x10 ;$LLKHF_INJECTED
- ; ToolTip("INJECTED")
- ; Case 0x80 ;$LLKHF_UP
- ; ToolTip("scanCode: " & DllStructGetData($KEYHOOK, "scanCode") & @LF & "vkCode: " & $vkCode)
- ; EndSwitch
- EndSwitch
- Return DllCall("user32.dll", "lresult", "CallNextHookEx", "handle", $Hook, "int", $nCode, "wparam", $wParam, "lparam", $lParam)[0]
- EndFunc ;==>_Keyboard_Hook
- Func OnAutoItExit()
- DllCall("user32.dll", "bool", "UnhookWindowsHookEx", "handle", $Hook)
- DllCallbackFree($hKeyProc)
- EndFunc ;==>OnAutoItExit
Advertisement
Add Comment
Please, Sign In to add comment