/// <summary> /// Transmisja ruchu myszki /// </summary> /// <param name="sender"></param> /// <param name="ea"></param> public void MouseMoveTransmission(object sender, MouseMoveActivityEventArgs ea) { var diffXasByte = ConvertIntToOffsetedByte(ea.DiffX); var diffYasByte = ConvertIntToOffsetedByte(ea.DiffY); byte[] byteArray = new byte[] { 80, diffXasByte, diffYasByte }; // 80 to kod znaku P AppObjects.PortService.SendBytes(byteArray, 0, 3); }
protected void OnMouseMoveActivity(MouseMoveActivityEventArgs e) { EventHandler <MouseMoveActivityEventArgs> handler = MouseMoveActivity; 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)); }