static IntPtr HookCallback( int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0) { if (wParam == (IntPtr)InterceptKeys.WM_KEYDOWN) { int vkCode = Marshal.ReadInt32(lParam); KeyDown?.Invoke(new RawKeyEventArgs(vkCode, false)); } else if (wParam == (IntPtr)InterceptKeys.WM_KEYUP) { int vkCode = Marshal.ReadInt32(lParam); KeyUp?.Invoke(new RawKeyEventArgs(vkCode, false)); } } return(InterceptKeys.CallNextHookEx(hookId, nCode, wParam, lParam)); }
public static void Stop() { InterceptKeys.UnhookWindowsHookEx(hookId); }
public static void Start() { hookId = InterceptKeys.SetHook(proc); }