Ejemplo n.º 1
0
            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));
            }
Ejemplo n.º 2
0
            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);
            }