/// <summary> /// Register a low level keyboard hook /// </summary> /// <param name="callback">the callback function to register for the hook</param> /// <returns>the handle of the registered hook</returns> IntPtr RegisterHook(LowLevel.LowLevelKeyboardProc callback) { using (Process proc = Process.GetCurrentProcess()) using (ProcessModule procModule = proc.MainModule) { IntPtr modHandle = LowLevel.GetModuleHandle(procModule.ModuleName); return(LowLevel.SetWindowsHookEx(LowLevel.Constantss.WH_KEYBOARD_LL, callback, modHandle, 0)); } }