private static void unhook_mouse() { if (RCH_Mouse_Handler != 0) { int result = UnhookWindowsHookEx(RCH_Mouse_Handler); RCH_Mouse_Handler = 0; Mouse_Callback = null; if (result == 0) { int errorCode = Marshal.GetLastWin32Error(); throw new Win32Exception(errorCode); } } }
private static void set_keyboard_hook() { if (_Keyboard != null) { if (RCH_Keyboard_Handler == 0) { Keyboard_Callback = RCH_Keyboard_Hook_Proc; RCH_Keyboard_Handler = SetWindowsHookEx( WH_KEYBOARD_LL, Keyboard_Callback, IntPtr.Zero, 0 ); //return descriptor or null if (RCH_Keyboard_Handler == 0) { int errorCode = Marshal.GetLastWin32Error(); throw new Win32Exception(errorCode); } } } }
private static int RCH_Keyboard_Handler = 0; //keyboard descriptor private static void set_mouse_hook() { if (_Mouse != null) { if (RCH_Mouse_Handler == 0) { Mouse_Callback = RCH_Mouse_Hook_Proc; RCH_Mouse_Handler = SetWindowsHookEx( WH_MOUSE_LL, Mouse_Callback, IntPtr.Zero, 0 ); //return descriptor or null if (RCH_Mouse_Handler == 0) { int errorCode = Marshal.GetLastWin32Error(); throw new Win32Exception(errorCode); } } } }
private static extern int SetWindowsHookEx(int idHook, RCH_Proc_Delegate lpfn, IntPtr hMod, int dwThreadId);