Exemplo n.º 1
0
 public ExtraMouse(ExtraMouse mouse)
 {
     m_button = mouse.Button;
     m_action = mouse.Action;
     m_point  = mouse.Position;
     m_clicks = mouse.Cliks;
 }
Exemplo n.º 2
0
 public ExtraMouse(ExtraMouse mouse)
 {
     m_button = mouse.Button;
     m_action = mouse.Action;
     m_point = mouse.Position;
     m_clicks = mouse.Cliks;
 }
Exemplo n.º 3
0
 public ExtraMouse(ExtraMouseBtns button, ExtraMouseActions action, Point position)
 {
     m_button = button;
     m_action = action;
     m_point  = position;
     m_clicks = m_action == ExtraMouseActions.DoubleClick ? 2 : 1;
 }
Exemplo n.º 4
0
        private ExtraMouseActions ExtractAction(IntPtr wParam, Win32.MouseLLHookStruct hookStruct)
        {
            ExtraMouseActions action = ExtraMouseActions.None;

            switch (wParam.ToInt32())
            {
            case Win32.WM_MOUSEMOVE:
            case Win32.WM_NCMOUSEMOVE:
                action = ExtraMouseActions.Move;
                break;

            case Win32.WM_LBUTTONDOWN:
            case Win32.WM_RBUTTONDOWN:
            case Win32.WM_MBUTTONDOWN:
            case Win32.WM_XBUTTONDOWN:
            case Win32.WM_NCLBUTTONDOWN:
            case Win32.WM_NCRBUTTONDOWN:
            case Win32.WM_NCMBUTTONDOWN:
            case Win32.WM_NCXBUTTONDOWN:
                action = ExtraMouseActions.Down;
                break;

            // button up messages
            case Win32.WM_LBUTTONUP:
            case Win32.WM_RBUTTONUP:
            case Win32.WM_MBUTTONUP:
            case Win32.WM_XBUTTONUP:
            case Win32.WM_NCLBUTTONUP:
            case Win32.WM_NCRBUTTONUP:
            case Win32.WM_NCMBUTTONUP:
            case Win32.WM_NCXBUTTONUP:
                action = ExtraMouseActions.Up;
                break;

            // double click messages
            case Win32.WM_LBUTTONDBLCLK:
            case Win32.WM_RBUTTONDBLCLK:
            case Win32.WM_MBUTTONDBLCLK:
            case Win32.WM_XBUTTONDBLCLK:
            case Win32.WM_NCLBUTTONDBLCLK:
            case Win32.WM_NCRBUTTONDBLCLK:
            case Win32.WM_NCMBUTTONDBLCLK:
            case Win32.WM_NCXBUTTONDBLCLK:
                action = ExtraMouseActions.DoubleClick;
                break;

            case Win32.WM_MOUSEWHEEL:
                short mouseDelta = (short)((hookStruct.mouseData >> 16) & 0xffff);
                if (mouseDelta == 120)
                {
                    action = ExtraMouseActions.WheelDown;
                }
                else if (mouseDelta == -120)
                {
                    action = ExtraMouseActions.WheelUp;
                }
                break;
            }
            return(action);
        }
Exemplo n.º 5
0
        private static int GetDwData(ExtraMouseBtns button, ExtraMouseActions action)
        {
            int dwData = 0;

            switch (button)
            {
            case ExtraMouseBtns.XButton1:
                dwData = Win32.XBUTTON1;
                break;

            case ExtraMouseBtns.XButton2:
                dwData = Win32.XBUTTON2;
                break;

            case ExtraMouseBtns.Wheel:
                if (action == ExtraMouseActions.WheelDown)
                {
                    dwData = 120;
                }
                else if (action == ExtraMouseActions.WheelUp)
                {
                    dwData = -120;
                }
                break;

            default:
                dwData = 0;
                break;
            }
            return(dwData);
        }
Exemplo n.º 6
0
        //public void SimulateHiddenAction(ExtraMouseActions action, Point pos)
        //{
        //    m_bSimimulate = true;
        //    ExtraMouse.SimateHiddenClick(action, pos);
        //    m_bSimimulate = false;
        //}

        public void SimulateMouseAction(ExtraMouseBtns button, ExtraMouseActions action)
        {
            StartSimulation();
            Debug.WriteLineIf(DEBUG, string.Format("Simulating button: {0}, action: {1}", button, action));
            ExtraMouse.SimulateMouseAction(button, action, m_LParam);
            StopSimulation();
        }
Exemplo n.º 7
0
 public ExtraMouse(ExtraMouseBtns button, ExtraMouseActions action, Point position)
 {   
     m_button = button;
     m_action = action;
     m_point = position;
     m_clicks = m_action == ExtraMouseActions.DoubleClick ? 2 : 1;
 }
Exemplo n.º 8
0
 protected void OnWheelBtnAction(MouseEventArgs trigger, ExtraMouseActions wheelAction)
 {
     if (WheelBtnAction != null)
     {
         WheelBtnAction(trigger, wheelAction);
     }
 }
Exemplo n.º 9
0
 public ExtraMouse(IntPtr wParam, IntPtr lParam)
 {
     Win32.MouseLLHookStruct hookStruct = (Win32.MouseLLHookStruct)Marshal.PtrToStructure(lParam, typeof(Win32.MouseLLHookStruct));
     m_button = ExtractButton(wParam, hookStruct);
     m_action = ExtractAction(wParam, hookStruct);
     m_point = new Point(hookStruct.pt.x, hookStruct.pt.y);
     m_clicks = m_action == ExtraMouseActions.DoubleClick ? 2 : 1;
 }
Exemplo n.º 10
0
 public ExtraMouse(IntPtr wParam, IntPtr lParam)
 {
     Win32.MouseLLHookStruct hookStruct = (Win32.MouseLLHookStruct)Marshal.PtrToStructure(lParam, typeof(Win32.MouseLLHookStruct));
     m_button = ExtractButton(wParam, hookStruct);
     m_action = ExtractAction(wParam, hookStruct);
     m_point  = new Point(hookStruct.pt.x, hookStruct.pt.y);
     m_clicks = m_action == ExtraMouseActions.DoubleClick ? 2 : 1;
 }
Exemplo n.º 11
0
        public static int GetWmValue(ExtraMouseBtns button, ExtraMouseActions action)
        {
            int wm_message = 0;

            switch (button)
            {
            case ExtraMouseBtns.Left:
                if (action == ExtraMouseActions.Down)
                {
                    wm_message = Win32.WM_LBUTTONDOWN;
                }
                else
                {
                    wm_message = Win32.WM_LBUTTONUP;
                }
                break;

            case ExtraMouseBtns.Right:
                if (action == ExtraMouseActions.Down)
                {
                    wm_message = Win32.WM_RBUTTONDOWN;
                }
                else
                {
                    wm_message = Win32.WM_RBUTTONUP;
                }
                break;

            case ExtraMouseBtns.Middle:
                if (action == ExtraMouseActions.Down)
                {
                    wm_message = Win32.WM_MBUTTONDOWN;
                }
                else
                {
                    wm_message = Win32.WM_MBUTTONUP;
                }
                break;

            case ExtraMouseBtns.XButton1:
            case ExtraMouseBtns.XButton2:
                if (action == ExtraMouseActions.Down)
                {
                    wm_message = Win32.WM_XBUTTONDOWN;
                }
                else
                {
                    wm_message = Win32.WM_XBUTTONUP;
                }
                break;

            case ExtraMouseBtns.Wheel:
                wm_message = Win32.WM_MOUSEWHEEL;
                break;
            }
            return(wm_message);
        }
Exemplo n.º 12
0
        public static void SimulateMouseAction(ExtraMouseBtns button, ExtraMouseActions action, IntPtr lParam)
        {
            Win32.MouseLLHookStruct hookStruct = (Win32.MouseLLHookStruct)Marshal.PtrToStructure(lParam, typeof(Win32.MouseLLHookStruct));
            int dwData  = GetDwData(button, action);
            int dwFlags = GetMouseEventValue(button, action);

            if (action == ExtraMouseActions.DoubleClick)
            {
                //Win32.SetCursorPos(hookStruct.pt.x, hookStruct.pt.y);
                Win32.mouse_event(dwFlags, hookStruct.pt.x, hookStruct.pt.y, dwData, IntPtr.Zero);
                System.Threading.Thread.Sleep(10);
                Win32.mouse_event(dwFlags, hookStruct.pt.x, hookStruct.pt.y, dwData, IntPtr.Zero);
            }
            else
            {
                //Win32.SetCursorPos(hookStruct.pt.x, hookStruct.pt.y);
                Win32.mouse_event(dwFlags, hookStruct.pt.x, hookStruct.pt.y, dwData, IntPtr.Zero);
            }
        }
Exemplo n.º 13
0
        void MyMouse_WheelBtnAction(MouseEventArgs trigger, ExtraMouseActions action)
        {
            Debug.WriteLine(string.Format("MyEngine: WheelBtnAction Trigger: {0} Action: {1}", trigger.Button, action));
            if (!m_wheelBtnUsed)
            {
                form_top.CloseContextMenu();
            }
            m_cursorPosition = trigger.Location;
            m_hwndForeWnd    = Win32.GetForegroundWindow();
            //m_hwndWndToUse = GetWindowToUse(trigger.Location);

            string name = WheelButton.GetName(trigger.Button);

            GesturesCollection recognizedGestures = GetRecognizedGestures(name);

            if (recognizedGestures.Count == 0)
            {
                return;
            }
            MyGesture gestToExecute = recognizedGestures[0];

            if (!m_wheelBtnUsed)
            {
                m_wheelBtnUsed = true;
                ExecuteImplicitOnlyAction(gestToExecute.Action, KeystrokesOptions.MouseAction.TriggerDown, true);
            }
            switch (action)
            {
            case ExtraMouseActions.WheelDown:
                ExecuteImplicitOnlyAction(gestToExecute.Action, KeystrokesOptions.MouseAction.WheelDown, false);
                break;

            case ExtraMouseActions.WheelUp:
                ExecuteImplicitOnlyAction(gestToExecute.Action, KeystrokesOptions.MouseAction.WheelUp, false);
                break;

            case ExtraMouseActions.None:
                ExecuteImplicitOnlyAction(gestToExecute.Action, KeystrokesOptions.MouseAction.TriggerUp, false);
                m_wheelBtnUsed = false;
                break;
            }
        }
Exemplo n.º 14
0
 protected void OnWheelBtnAction(MouseEventArgs trigger, ExtraMouseActions wheelAction)
 {
     if (WheelBtnAction != null)
         WheelBtnAction(trigger, wheelAction);
 }
Exemplo n.º 15
0
        private static int GetMouseEventValue(ExtraMouseBtns button, ExtraMouseActions action)
        {
            int  mouseEventValue = 0;
            bool swapedButtons   = Win32.GetSystemMetrics(Win32.SM_SWAPBUTTON) == 0 ? false : true;

            switch (button)
            {
            case ExtraMouseBtns.Left:
                if (swapedButtons)
                {
                    swapedButtons = false;
                    goto case ExtraMouseBtns.Right;
                }

                if (action == ExtraMouseActions.Down)
                {
                    mouseEventValue = Win32.MOUSEEVENTF_LEFTDOWN;
                }
                else if (action == ExtraMouseActions.Up)
                {
                    mouseEventValue = Win32.MOUSEEVENTF_LEFTUP;
                }
                break;

            case ExtraMouseBtns.Right:
                if (swapedButtons)
                {
                    swapedButtons = false;
                    goto case ExtraMouseBtns.Left;
                }

                if (action == ExtraMouseActions.Down)
                {
                    mouseEventValue = Win32.MOUSEEVENTF_RIGHTDOWN;
                }
                else if (action == ExtraMouseActions.Up)
                {
                    mouseEventValue = Win32.MOUSEEVENTF_RIGHTUP;
                }
                break;

            case ExtraMouseBtns.Middle:
                if (action == ExtraMouseActions.Down)
                {
                    mouseEventValue = Win32.MOUSEEVENTF_MIDDLEDOWN;
                }
                else if (action == ExtraMouseActions.Up)
                {
                    mouseEventValue = Win32.MOUSEEVENTF_MIDDLEUP;
                }
                break;

            case ExtraMouseBtns.XButton1:
            case ExtraMouseBtns.XButton2:
                if (action == ExtraMouseActions.Down)
                {
                    mouseEventValue = Win32.MOUSEEVENTF_XDOWN;
                }
                else if (action == ExtraMouseActions.Up)
                {
                    mouseEventValue = Win32.MOUSEEVENTF_XUP;
                }
                break;

            case ExtraMouseBtns.Wheel:
                mouseEventValue = Win32.MOUSEEVENTF_WHEEL;
                break;
            }
            if (action == ExtraMouseActions.Click)
            {
                mouseEventValue = GetMouseEventValue(button, ExtraMouseActions.Down) | GetMouseEventValue(button, ExtraMouseActions.Up);
            }
            return(mouseEventValue);
        }
Exemplo n.º 16
0
        //public void SimulateHiddenAction(ExtraMouseActions action, Point pos)
        //{
        //    m_bSimimulate = true;
        //    ExtraMouse.SimateHiddenClick(action, pos);
        //    m_bSimimulate = false;
        //}

        public void SimulateMouseAction(ExtraMouseBtns button, ExtraMouseActions action)
        {
            StartSimulation();
            Debug.WriteLineIf(DEBUG, string.Format("Simulating button: {0}, action: {1}", button, action));
            ExtraMouse.SimulateMouseAction(button, action, m_LParam);
            StopSimulation();
        }
Exemplo n.º 17
0
        void MyMouse_WheelBtnAction(MouseEventArgs trigger, ExtraMouseActions action)
        {
            Debug.WriteLine(string.Format("MyEngine: WheelBtnAction Trigger: {0} Action: {1}", trigger.Button, action));
            if (!m_wheelBtnUsed)
                form_top.CloseContextMenu();
            m_cursorPosition = trigger.Location;
            m_hwndForeWnd = Win32.GetForegroundWindow();
            //m_hwndWndToUse = GetWindowToUse(trigger.Location);            

            string name = WheelButton.GetName(trigger.Button);

            GesturesCollection recognizedGestures = GetRecognizedGestures(name);
            if (recognizedGestures.Count == 0) return;
            MyGesture gestToExecute = recognizedGestures[0];

            if (!m_wheelBtnUsed)
            {
                m_wheelBtnUsed = true;
                ExecuteImplicitOnlyAction(gestToExecute.Action, KeystrokesOptions.MouseAction.TriggerDown, true);
            }
            switch (action)
            {
                case ExtraMouseActions.WheelDown:
                    ExecuteImplicitOnlyAction(gestToExecute.Action, KeystrokesOptions.MouseAction.WheelDown, false);                   
                    break;
                case ExtraMouseActions.WheelUp:
                    ExecuteImplicitOnlyAction(gestToExecute.Action, KeystrokesOptions.MouseAction.WheelUp, false);
                    break;
                case ExtraMouseActions.None:
                    ExecuteImplicitOnlyAction(gestToExecute.Action, KeystrokesOptions.MouseAction.TriggerUp, false);
                    m_wheelBtnUsed = false;
                    break;
            }

        }
Exemplo n.º 18
0
 private static int GetDwData(ExtraMouseBtns button, ExtraMouseActions action)
 {
     int dwData = 0;
     switch (button)
     {
         case ExtraMouseBtns.XButton1:
             dwData = Win32.XBUTTON1;
             break;
         case ExtraMouseBtns.XButton2:
             dwData = Win32.XBUTTON2;
             break;
         case ExtraMouseBtns.Wheel:
             if (action == ExtraMouseActions.WheelDown)
                 dwData = 120;
             else if (action == ExtraMouseActions.WheelUp)
                 dwData = -120;
             break;
         default:
             dwData = 0;
             break;
     }
     return dwData;
 }
Exemplo n.º 19
0
        private static int GetMouseEventValue(ExtraMouseBtns button, ExtraMouseActions action)
        {
            int mouseEventValue = 0;
            bool swapedButtons = Win32.GetSystemMetrics(Win32.SM_SWAPBUTTON) == 0 ? false : true;
            
            switch (button)
            {
                case ExtraMouseBtns.Left:
                    if (swapedButtons)
                    {
                        swapedButtons = false;
                        goto case ExtraMouseBtns.Right;
                    }

                    if (action == ExtraMouseActions.Down)
                        mouseEventValue = Win32.MOUSEEVENTF_LEFTDOWN;
                    else if (action == ExtraMouseActions.Up)
                        mouseEventValue = Win32.MOUSEEVENTF_LEFTUP;
                    break;
                case ExtraMouseBtns.Right:
                    if (swapedButtons)
                    {
                        swapedButtons = false;
                        goto case ExtraMouseBtns.Left;
                    }

                    if (action == ExtraMouseActions.Down)
                        mouseEventValue = Win32.MOUSEEVENTF_RIGHTDOWN;
                    else if (action == ExtraMouseActions.Up)
                        mouseEventValue = Win32.MOUSEEVENTF_RIGHTUP;
                    break;
                case ExtraMouseBtns.Middle:
                    if (action == ExtraMouseActions.Down)
                        mouseEventValue = Win32.MOUSEEVENTF_MIDDLEDOWN;
                    else if (action == ExtraMouseActions.Up)
                        mouseEventValue = Win32.MOUSEEVENTF_MIDDLEUP;
                    break;
                case ExtraMouseBtns.XButton1:
                case ExtraMouseBtns.XButton2:
                    if (action == ExtraMouseActions.Down)
                        mouseEventValue = Win32.MOUSEEVENTF_XDOWN;
                    else if (action == ExtraMouseActions.Up)
                        mouseEventValue = Win32.MOUSEEVENTF_XUP;
                    break;
                case ExtraMouseBtns.Wheel:
                    mouseEventValue = Win32.MOUSEEVENTF_WHEEL;
                    break;
            }
            if (action == ExtraMouseActions.Click)
                mouseEventValue = GetMouseEventValue(button, ExtraMouseActions.Down) | GetMouseEventValue(button, ExtraMouseActions.Up);
            return mouseEventValue;
        }
Exemplo n.º 20
0
 public static int GetWmValue(ExtraMouseBtns button, ExtraMouseActions action)
 {
     int wm_message = 0;
     switch (button)
     {
         case ExtraMouseBtns.Left:
             if (action == ExtraMouseActions.Down)
                 wm_message = Win32.WM_LBUTTONDOWN;
             else
                 wm_message = Win32.WM_LBUTTONUP;
             break;
         case ExtraMouseBtns.Right:
             if (action == ExtraMouseActions.Down)
                 wm_message = Win32.WM_RBUTTONDOWN;
             else
                 wm_message = Win32.WM_RBUTTONUP;
             break;
         case ExtraMouseBtns.Middle:
             if (action == ExtraMouseActions.Down)
                 wm_message = Win32.WM_MBUTTONDOWN;
             else
                 wm_message = Win32.WM_MBUTTONUP;
             break;
         case ExtraMouseBtns.XButton1:
         case ExtraMouseBtns.XButton2:
             if (action == ExtraMouseActions.Down)
                 wm_message = Win32.WM_XBUTTONDOWN;
             else
                 wm_message = Win32.WM_XBUTTONUP;
             break;
         case ExtraMouseBtns.Wheel:
             wm_message = Win32.WM_MOUSEWHEEL;
             break;
     }
     return wm_message;
 }
Exemplo n.º 21
0
 public static void SimulateMouseAction(ExtraMouseBtns button, ExtraMouseActions action, IntPtr lParam)
 {
     Win32.MouseLLHookStruct hookStruct = (Win32.MouseLLHookStruct)Marshal.PtrToStructure(lParam, typeof(Win32.MouseLLHookStruct));
     int dwData = GetDwData(button, action);
     int dwFlags = GetMouseEventValue(button, action);
     if (action == ExtraMouseActions.DoubleClick)
     {
         //Win32.SetCursorPos(hookStruct.pt.x, hookStruct.pt.y);
         Win32.mouse_event(dwFlags, hookStruct.pt.x, hookStruct.pt.y, dwData, IntPtr.Zero);
         System.Threading.Thread.Sleep(10);
         Win32.mouse_event(dwFlags, hookStruct.pt.x, hookStruct.pt.y, dwData, IntPtr.Zero);
     }
     else
     {
         //Win32.SetCursorPos(hookStruct.pt.x, hookStruct.pt.y);
         Win32.mouse_event(dwFlags, hookStruct.pt.x, hookStruct.pt.y, dwData, IntPtr.Zero);
     }
 }