示例#1
0
        void _MouseHookProc(HookData.Mouse x)
        {
            bool isMMove = x.Event == HookData.MouseEvent.Move;

            switch (_block & (BIEvents.MouseClicks | BIEvents.MouseMoving))
            {
            case BIEvents.MouseClicks | BIEvents.MouseMoving: break;

            case BIEvents.MouseClicks: if (isMMove)
                {
                    return;
                }
                break;

            case BIEvents.MouseMoving: if (!isMMove)
                {
                    return;
                }
                break;
            }
            if (!_DontBlock(x.IsInjected, x.dwExtraInfo, 0, isMMove))
            {
                x.BlockEvent();
            }
        }
示例#2
0
文件: t-mouse.cs 项目: alexfordc/Au
        internal bool HookProcClickWheel(HookData.Mouse k, TriggerHookContext thc)
        {
            //AOutput.Write(k.Event, k.pt);
            Debug.Assert(!k.IsInjectedByAu);             //server must ignore

            ESubtype subtype;
            byte     data;

            if (k.IsButton)
            {
                if (k.IsButtonUp)
                {
                    if (k.Event == _upEvent)
                    {
                        _upEvent = 0;
                        if (_upMod == 0 && _upTrigger != null)
                        {
                            thc.args    = _upArgs;
                            thc.trigger = _upTrigger;
                            _ResetUp();
                        }
                    }
                    if (k.Event == _eatUp)
                    {
                        _eatUp = 0;
                        return(true);
                        //To be safer, could return false if AMouse.IsPressed(k.Button), but then can interfere with the trigger action.
                    }
                    return(false);
                    //CONSIDER: _upTimeout.
                }
                if (k.Event == _eatUp)
                {
                    _eatUp = 0;
                }

                subtype = ESubtype.Click;
                TMClick b;
                switch (k.Event)
                {
                case HookData.MouseEvent.LeftButton: b = TMClick.Left; break;

                case HookData.MouseEvent.RightButton: b = TMClick.Right; break;

                case HookData.MouseEvent.MiddleButton: b = TMClick.Middle; break;

                case HookData.MouseEvent.X1Button: b = TMClick.X1; break;

                default: b = TMClick.X2; break;
                }
                data = (byte)b;
            }
            else                 //wheel
            {
                subtype = ESubtype.Wheel;
                TMWheel b;
                switch (k.Event)
                {
                case HookData.MouseEvent.WheelForward: b = TMWheel.Forward; break;

                case HookData.MouseEvent.WheelBackward: b = TMWheel.Backward; break;

                case HookData.MouseEvent.WheelLeft: b = TMWheel.Left; break;

                default: b = TMWheel.Right; break;
                }
                data = (byte)b;
            }

            return(_HookProc2(thc, false, subtype, k.Event, k.pt, data, 0));
        }