/// <summary> /// Installs low level mouse hook. This hook raises events every time a mouse event occured. /// </summary> /// <remarks></remarks> public static void InstallHook() { MouseHookDelegate = new MouseProcDelegate(MouseProc); if (Environment.Version.Major >= 4) { IntPtr hInstance = LoadLibrary("user32.dll"); MouseEventHook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookDelegate, hInstance.ToInt32(), 0); } else { MouseEventHook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookDelegate, Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0]).ToInt32(), 0); } //MouseEventHook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookDelegate, Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0]).ToInt32(), 0); }
private static extern int SetWindowsHookEx(int idHook, MouseProcDelegate lpfn, int hmod, int dwThreadId);