public static int KeyboardHook(int nCode, IntPtr wParam, IntPtr lParam) { try { if (nCode == 0) { Mubox.Win32.WindowHook.KBDLLHOOKSTRUCT keyboardHookStruct = (Mubox.Win32.WindowHook.KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(Mubox.Win32.WindowHook.KBDLLHOOKSTRUCT)); if (OnKeyboardInputReceived((Win32.WM)wParam, keyboardHookStruct)) { return(1); } } } catch (Exception ex) { Debug.WriteLine(ex.Message); Debug.WriteLine(ex.StackTrace); } try { return(Mubox.Win32.WindowHook.CallNextHookEx(hHook, nCode, wParam, lParam)); } catch (Exception ex) { Debug.WriteLine(ex.Message); Debug.WriteLine(ex.StackTrace); } return(1); }
public static KeyboardInput CreateFrom(Win32.WM wParam, Mubox.Win32.WindowHook.KBDLLHOOKSTRUCT hookStruct) { KeyboardInput e = new KeyboardInput(); e.VK = hookStruct.vkCode; e.Scan = hookStruct.scanCode; e.Flags = hookStruct.flags; e.Time = hookStruct.time; e.WM = wParam; return(e); }