public MouseHook(ILog log) { logger = log; mouseHookProc = null; mouseHookHandler = IntPtr.Zero; deviceStateChecker = new WindowsInputDeviceStateAdaptor(); inputSimulator = new InputSimulator(); hInstance = ApiFunctions.LoadLibrary("User32"); }
public void StartHook() { if (mouseHookProc == null) { mouseHookProc = new MouseHookProc(ConfigHook); } mouseHookHandler = ApiFunctions.SetWindowsHookEx(HookType.WH_MOUSE_LL, mouseHookProc, hInstance, 0); logger.Info("Mouse hook started"); }
public bool Start(string moduleName, VirtualKeyModifier key1, VirtualKeyModifier key2, MouseButton mouseButton) { _key1 = key1; _key2 = key2; _mouseButton = mouseButton; _hookProc = HookProc; var moduleHandle = GetModuleHandle(moduleName); _hookHandle = SetWindowsHookEx(WH_MOUSE_LL, _hookProc, moduleHandle, 0); var hookStarted = _hookHandle != IntPtr.Zero; return(hookStarted); }
public void unhook() { if (ms_hookprocCallbackDelegate == null) { return; } bool ok = NativeMethods.UnhookWindowsHookEx(ms_hHook); if (!ok) { throw new Win32Exception(); } ms_hookprocCallbackDelegate = null; }
/// <summary> /// Включает отслеживание событий мыши /// </summary> public void hook() { try { IntPtr hInstance = LoadLibrary("User32"); callbackDelegate = new MouseHookProc(findMoving); fhook = SetWindowsHookEx(WH_MOUSE_LL, callbackDelegate, hInstance, 0); } catch (Exception ex) { logger.Error("ERROR:HOOK M:{0}", ex.Message); unhook(); hook(); } }
public void hook() { if (ms_hookprocCallbackDelegate != null) { throw new InvalidOperationException("Can't hook more than once"); } IntPtr hInstance = NativeMethods.LoadLibrary("User32"); ms_hookprocCallbackDelegate = new MouseHookProc(hookProc); ms_hHook = SetWindowsHookEx(WH_MOUSE_LL, ms_hookprocCallbackDelegate, hInstance, 0); if (ms_hHook == IntPtr.Zero) { throw new Win32Exception(); } }
static extern IntPtr SetWindowsHookEx(int idHook, MouseHookProc callback, IntPtr hInstance, uint threadId);
public static extern IntPtr SetWindowsHookEx(WindowsHook idHook, MouseHookProc lpfn, IntPtr hMod, uint dwThreadId);
public static extern IntPtr SetWindowsHookEx(int idHook, MouseHookProc callback, IntPtr hModule, uint dwThreadId);
public void setMouseHookProc(MouseHookProc func) { MouseDownHook = func; }
internal static extern IntPtr MouseHookSetWindowsHookEx(int idHook, MouseHookProc lpfn, IntPtr hMod, uint dwThreadId);