private IntPtr MouseHookCallback(int nCode, IntPtr wParam, ref MouseHookStruct lParam) { if (nCode >= 0) { if (userProcMouse != null) { // 鼠标消息 const int WM_MOUSEMOVE = 0x200; const int WM_LBUTTONDOWN = 0x201; const int WM_RBUTTONDOWN = 0x204; const int WM_MBUTTONDOWN = 0x207; const int WM_LBUTTONUP = 0x202; const int WM_RBUTTONUP = 0x205; const int WM_MBUTTONUP = 0x208; const int WM_LBUTTONDBLCLK = 0x203; const int WM_RBUTTONDBLCLK = 0x206; const int WM_MBUTTONDBLCLK = 0x209; //设置MouseHookStruct.mouseAction MouseHookStruct.MouseActionEnum mAction = new MouseHookStruct.MouseActionEnum(); switch ((int)wParam) { case WM_MOUSEMOVE: mAction = MouseHookStruct.MouseActionEnum.Move; break; case WM_LBUTTONDOWN: mAction = MouseHookStruct.MouseActionEnum.LeftButtonDown; break; case WM_LBUTTONUP: mAction = MouseHookStruct.MouseActionEnum.LeftButtonUp; break; case WM_LBUTTONDBLCLK: mAction = MouseHookStruct.MouseActionEnum.LeftButtonDoubleClick; break; case WM_RBUTTONDOWN: mAction = MouseHookStruct.MouseActionEnum.RightButtonDown; break; case WM_RBUTTONUP: mAction = MouseHookStruct.MouseActionEnum.RightButtonUp; break; case WM_RBUTTONDBLCLK: mAction = MouseHookStruct.MouseActionEnum.RightButtonDoubleClick; break; case WM_MBUTTONDOWN: mAction = MouseHookStruct.MouseActionEnum.MiddleButtonDown; break; case WM_MBUTTONUP: mAction = MouseHookStruct.MouseActionEnum.MiddleButtonUp; break; case WM_MBUTTONDBLCLK: mAction = MouseHookStruct.MouseActionEnum.MiddleButtonDoubleClick; break; } lParam.mouseAction = mAction; bool flag = false; userProcMouse(lParam, out flag); if (flag) { return((System.IntPtr) 1); //同上 } } } return(CallNextHookEx(hookID, nCode, wParam, ref lParam)); }
private IntPtr MouseHookCallback(int nCode, IntPtr wParam, ref MouseHookStruct lParam) { if (nCode >= 0) { if (userProcMouse != null) { // 鼠标消息 const int WM_MOUSEMOVE = 0x200; const int WM_LBUTTONDOWN = 0x201; const int WM_RBUTTONDOWN = 0x204; const int WM_MBUTTONDOWN = 0x207; const int WM_LBUTTONUP = 0x202; const int WM_RBUTTONUP = 0x205; const int WM_MBUTTONUP = 0x208; const int WM_LBUTTONDBLCLK = 0x203; const int WM_RBUTTONDBLCLK = 0x206; const int WM_MBUTTONDBLCLK = 0x209; //设置MouseHookStruct.mouseAction MouseHookStruct.MouseActionEnum mAction = new MouseHookStruct.MouseActionEnum(); switch ((int)wParam) { case WM_MOUSEMOVE: mAction = MouseHookStruct.MouseActionEnum.Move; break; case WM_LBUTTONDOWN: mAction = MouseHookStruct.MouseActionEnum.LeftButtonDown; break; case WM_LBUTTONUP: mAction = MouseHookStruct.MouseActionEnum.LeftButtonUp; break; case WM_LBUTTONDBLCLK: mAction = MouseHookStruct.MouseActionEnum.LeftButtonDoubleClick; break; case WM_RBUTTONDOWN: mAction = MouseHookStruct.MouseActionEnum.RightButtonDown; break; case WM_RBUTTONUP: mAction = MouseHookStruct.MouseActionEnum.RightButtonUp; break; case WM_RBUTTONDBLCLK: mAction = MouseHookStruct.MouseActionEnum.RightButtonDoubleClick; break; case WM_MBUTTONDOWN: mAction = MouseHookStruct.MouseActionEnum.MiddleButtonDown; break; case WM_MBUTTONUP: mAction = MouseHookStruct.MouseActionEnum.MiddleButtonUp; break; case WM_MBUTTONDBLCLK: mAction = MouseHookStruct.MouseActionEnum.MiddleButtonDoubleClick; break; } lParam.mouseAction = mAction; bool flag = false; userProcMouse(lParam, out flag); if (flag) { return (System.IntPtr)1; //同上 } } } return CallNextHookEx(hookID, nCode, wParam, ref lParam); }