Exemple #1
0
 private static void UnHook(ref IntPtr hookID)
 {
     if (hookID != IntPtr.Zero)
     {
         User32_MouseHook.UnhookWindowsHookEx(hookID);
     }
     hookID = IntPtr.Zero;
 }
Exemple #2
0
        private static IntPtr SetHook(User32_MouseHook.HookProcDelegate proc)
        {
            IntPtr hook = User32_MouseHook.SetWindowsHookEx(User32_MouseHook.HookType.WH_MOUSE_LL, proc, User32.GetModuleHandle("user32"), 0);

            if (hook == IntPtr.Zero)
            {
                throw new System.ComponentModel.Win32Exception();
            }
            return(hook);
        }
Exemple #3
0
        //https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/ms644986(v=vs.85)
        private IntPtr LowLevelMouseProc(int nCode, IntPtr wParam, IntPtr lParam)
        {
            if (nCode >= 0)
            {
                User32_MouseHook.MouseMessages  msg        = (User32_MouseHook.MouseMessages)wParam;
                User32_MouseHook.MSLLHOOKSTRUCT hookStruct = (User32_MouseHook.MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(User32_MouseHook.MSLLHOOKSTRUCT));
                MouseEventArgs32 e = new MouseEventArgs32(msg, ref hookStruct);

                MessageUtil.BeginInvoke(() => OnMouseMessage(null, e));
            }

            return(User32_MouseHook.CallNextHookEx(_hookID, nCode, wParam, lParam));
        }