为了账号安全,请及时绑定邮箱和手机立即绑定

全局鼠标事件处理程序

全局鼠标事件处理程序

C#
梦里花落0921 2019-08-27 17:36:13
全局鼠标事件处理程序我有以下代码,我从某处捕获鼠标事件。我修改了它并创建了一个事件处理程序,以便我可以订阅它。正确捕获鼠标事件。但它永远不会触发事件处理程序。任何人都可以弄清楚代码有什么问题吗?public static class MouseHook{     public static event EventHandler MouseAction = delegate { };     public static void Start()     {         _hookID = SetHook(_proc);     }     public static void stop()     {         UnhookWindowsHookEx(_hookID);     }     private static LowLevelMouseProc _proc = HookCallback;     private static IntPtr _hookID = IntPtr.Zero;     private static IntPtr SetHook(LowLevelMouseProc proc)     {         using (Process curProcess = Process.GetCurrentProcess())         using (ProcessModule curModule = curProcess.MainModule)         {             return SetWindowsHookEx(WH_MOUSE_LL, proc,               GetModuleHandle(curModule.ModuleName), 0);         }     }     private delegate IntPtr LowLevelMouseProc(int nCode, IntPtr wParam, IntPtr lParam);     private static IntPtr HookCallback(       int nCode, IntPtr wParam, IntPtr lParam)     {         if (nCode >= 0 && MouseMessages.WM_LBUTTONDOWN == (MouseMessages)wParam)         {            MSLLHOOKSTRUCT hookStruct = (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));              MouseAction(null,new EventArgs());         }         return CallNextHookEx(_hookID, nCode, wParam, lParam);     }     private const int WH_MOUSE_LL = 14;     private enum MouseMessages     {         WM_LBUTTONDOWN = 0x0201,         WM_LBUTTONUP = 0x0202,         WM_MOUSEMOVE = 0x0200,         WM_MOUSEWHEEL = 0x020A,         WM_RBUTTONDOWN = 0x0204,         WM_RBUTTONUP = 0x0205     }     [StructLayout(LayoutKind.Sequential)]     private struct POINT    {         public int x;         public int y;     }     [StructLayout(LayoutKind.Sequential)]     private struct MSLLHOOKSTRUCT    {         public POINT pt;         public uint mouseData;         public uint flags;         public uint time;         public IntPtr dwExtraInfo;     }
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 605 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信