public HooksHandler() { _hookProc = Hook; IntPtr hInstance = WinApi.LoadLibrary("user32"); _hookPtr = WinApi.SetWindowsHookEx(WinApi.WH_KEYBOARD_LL, _hookProc, hInstance, 0); }
private static IntPtr SetHook(WinApi.LowLevelKeyboardProc proc) { using (var curProcess = Process.GetCurrentProcess()) using (var curModule = curProcess.MainModule) { return(WinApi.SetWindowsHookEx(Messages.WH_KEYBOARD_LL, proc, WinApi.GetModuleHandle(curModule.ModuleName), 0)); } }
/// <summary> /// Sets up a keyboard hook to trap low level keyboard messages. /// </summary> public KeyboardHook() { const uint k_Thread = 0; m_HookProc = new WinApi.LowLevelKeyboardProc(this.lowLevelKeyboardHookCallback); //m_HookProc = new WinApi.HookProc(lowLevelKeyboardHookCallback); using (Process curProcess = Process.GetCurrentProcess()) using (ProcessModule curModule = curProcess.MainModule) { IntPtr hModule = WinApi.GetModuleHandle(curModule.ModuleName); //m_HookID = WinApi.SetWindowsHookEx(WinApi.HookType.WH_KEYBOARD_LL, hook, hModule, k_Thread); m_HookID = WinApi.SetWindowsHookEx(WinApi.HookType.WH_KEYBOARD_LL, m_HookProc, hModule, k_Thread); } }
private InterceptKeys() { _proc = HookCallback; }
private void GrabbieMain_Shown(object sender, EventArgs e) { try { var r = new Rectangle(); r = Screen.AllScreens.Aggregate(r, (current, s) => Rectangle.Union(current, s.Bounds)); Bounds = new Rectangle(r.Left, r.Top, r.Width, r.Height); m_HighX = Bounds.Width; m_HighY = Bounds.Height; m_ImageRect = Bounds; m_Proc = HookCallback; s_HookId = SetHook(m_Proc); Activate(); } catch (Exception ex) { //TODO: Add are lovely Except Handler Here } }