/// <summary> /// Transmisja naciśnięcia klawisza myszy /// </summary> /// <param name="sender"></param> /// <param name="ea"></param> public void MouseButtonTransmission(object sender, MouseButtonActivityEventArgs ea) { string singleStringToSend; switch (ea.KeyCode) { case KeyCode.LButton: singleStringToSend = "L"; break; case KeyCode.RButton: singleStringToSend = "R"; break; case KeyCode.MButton: singleStringToSend = "M"; break; default: return; // wyjście bez dalszych akcji } if (!ea.IsPressed) { singleStringToSend = singleStringToSend.ToLower(); } AppObjects.PortService.SendString(singleStringToSend); }
protected void OnMouseButtonActivity(MouseButtonActivityEventArgs e) { EventHandler <MouseButtonActivityEventArgs> handler = MouseButtonActivity; if (handler != null) { handler(this, e); } }
private IntPtr HookMouseCallbackImplementation(int nCode, IntPtr wParam, IntPtr lParam) { if (RemoteControlActive) { var wmMouse = (User32.MouseMessage)wParam; if (wmMouse == User32.MouseMessage.WM_MOUSEMOVE) { User32.POINT lpPoint = (User32.POINT)Marshal.PtrToStructure(lParam, typeof(User32.POINT)); MouseMoveActivityEventArgs args = new MouseMoveActivityEventArgs(); args.DiffX = lpPoint.x - baseMouseX; args.DiffY = lpPoint.y - baseMouseY; OnMouseMoveActivity(args); } if (wmMouse == User32.MouseMessage.WM_MOUSEWHEEL) { User32.MSLLHOOKSTRUCT mSLLHOOKSTRUCT = (User32.MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(User32.MSLLHOOKSTRUCT)); var wheelData = ((short)(mSLLHOOKSTRUCT.mouseData >> 16)); MouseWheelActivityEventArgs args = new MouseWheelActivityEventArgs(); args.RotationDown = (wheelData > 0) ? false : true; OnMouseWheelActivity(args); } if (wmMouse == User32.MouseMessage.WM_LBUTTONDOWN) { MouseButtonActivityEventArgs args = new MouseButtonActivityEventArgs(); args.IsPressed = true; args.KeyCode = KeyCode.LButton; OnMouseButtonActivity(args); } if (wmMouse == User32.MouseMessage.WM_LBUTTONUP) { MouseButtonActivityEventArgs args = new MouseButtonActivityEventArgs(); args.IsPressed = false; args.KeyCode = KeyCode.LButton; OnMouseButtonActivity(args); } if (wmMouse == User32.MouseMessage.WM_RBUTTONDOWN) { MouseButtonActivityEventArgs args = new MouseButtonActivityEventArgs(); args.IsPressed = true; args.KeyCode = KeyCode.RButton; OnMouseButtonActivity(args); } if (wmMouse == User32.MouseMessage.WM_RBUTTONUP) { MouseButtonActivityEventArgs args = new MouseButtonActivityEventArgs(); args.IsPressed = false; args.KeyCode = KeyCode.RButton; OnMouseButtonActivity(args); } if (wmMouse == User32.MouseMessage.WM_MBUTTONDOWN) { MouseButtonActivityEventArgs args = new MouseButtonActivityEventArgs(); args.IsPressed = true; args.KeyCode = KeyCode.MButton; OnMouseButtonActivity(args); } if (wmMouse == User32.MouseMessage.WM_MBUTTONUP) { MouseButtonActivityEventArgs args = new MouseButtonActivityEventArgs(); args.IsPressed = false; args.KeyCode = KeyCode.MButton; OnMouseButtonActivity(args); } // bo nie puszczamy dalej, tylko wysłane zostało na port szeregowy return((IntPtr)1); } // puszczamy dalej (nie łapiemy) do obsługi return(User32.CallNextHookEx(globalMouseHookId, nCode, wParam, lParam)); }