public static void Update(float TimeMili) { System.Drawing.Point CenterScreen = new System.Drawing.Point(Global.Settings.Width / 2, Global.Settings.Height / 2); System.Drawing.Point CenterForm = Program.form.PointToScreen(CenterScreen); PrePosition = MousePosition; System.Drawing.Point lpPoint = Program.form.PointToClient(Cursor.Position); MousePosition = new Vector2(lpPoint.X, lpPoint.Y); MouseDelta = new Vector2(MousePosition.X - CenterScreen.X, MousePosition.Y - CenterScreen.Y); if (CursorToCenter) { Cursor.Position = CenterForm;// new System.Drawing.Point(100, 100); //PrePosition = new Vector2(CenterForm.X, CenterForm.Y); } keyboardState = KeyboardState.GetCurrentState(); /* if (keyboardState.PressedKeys.Count > 0) { foreach (Keys pressedKey in keyboardState.PressedKeys) { Console.Write(pressedKey + " "); } Console.WriteLine(); return; }*/ PreLeftMouse = LeftMouse; PreMidleMouse = MidleMouse; PreRightMouse = RightMouse; PreMouseWheel = MouseWheel; LeftMouse = LB; RightMouse = RB; MidleMouse = MB; MouseWheel += WD; }
/// <summary> /// Копирует текущее состояние клавиш. /// </summary> /// <returns>Копия текущего состояния клавиатуры.</returns> public static KeyboardState GetCurrentState() { KeyboardState ret = new KeyboardState(); ret.PressedKeys = new List<Keys>(States); return ret; }
public void Update() { //Log.Info("updating"); while (true) { try { _keyboard.Poll(); _keyState = _keyboard.GetCurrentState(); if (Result.Last.IsSuccess) { break; } } catch (DirectInputException ex) { Console.WriteLine(ex.Message); _result = ex.ResultCode; if (_result != ResultCode.InputLost && _result != ResultCode.NotAcquired) { return; } if ((_result = (_keyboard.Acquire())).IsFailure) { Log.Info("Failed to aquire keyboard"); //Log.Info(_result); return; } } } while (true) { try { _mouse.Poll(); _mouseState = _mouse.GetCurrentState(); break; } catch (DirectInputException ex) { _result = ex.ResultCode; if (_result != ResultCode.InputLost && _result != ResultCode.NotAcquired) { return; } if (((_result = _mouse.Acquire())).IsFailure) { Log.Info("Failed to aquire mouse"); Log.Info(_result); return; } } } _position = Cursor.Position; if (!_window.IsDisposed) { _position = _window.PointToClient(_position); } _pressStamp++; }