public ExtraMouse(ExtraMouse mouse) { m_button = mouse.Button; m_action = mouse.Action; m_point = mouse.Position; m_clicks = mouse.Cliks; }
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; }
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); }
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); }
//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(); }
protected void OnWheelBtnAction(MouseEventArgs trigger, ExtraMouseActions wheelAction) { if (WheelBtnAction != null) { WheelBtnAction(trigger, wheelAction); } }
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; }
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); }
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); } }
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; } }
protected void OnWheelBtnAction(MouseEventArgs trigger, ExtraMouseActions wheelAction) { if (WheelBtnAction != null) WheelBtnAction(trigger, wheelAction); }
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); }
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; } }
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; }
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; }
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; }