/// <summary> /// 控制键盘的按键释放 /// </summary> /// <param name="keyCode"></param> public void KeyUp(Keys keyCode) { KeyBoardEvent code = new KeyBoardEvent(KeyBoardType.Key_Up, keyCode); code.Head = CodeHead.CONTROL_KEYBOARD; currentControler.SendCode(code); }
private Vector2 GetRatio(MouseEvent mouse) { float k = 0.01f; int dpx = mouse.MouseAfterMoveP.X - mouse.MouseDowendP.X; int dpy = mouse.MouseAfterMoveP.Y - mouse.MouseDowendP.Y; bool strongX = Math.Abs(dpx) > Math.Abs(dpy); float dx, dy; if (KeyBoardEvent.GetInstance().IsShift) { dx = strongX ? dpx * k : dpy * k; dy = dx; } else if (KeyBoardEvent.GetInstance().IsCtrl) { dx = strongX ? dpx * k : 0; dy = strongX ? 0 : dpy * k; } else { dx = dpx * k; dy = dpy * k; } return(new Vector2(1.0f + dx, 1.0f + dy)); }
static void CommandOpenOSK(CommandArg[] args) { //这边操作必须要先把鼠标移开才能操作,不然会直接输入 KeyBoardEvent.DoMouseClick(Screen.width / 2, Screen.height / 2); //SuperInvoke.SkipFrames 等待帧数 SuperInvoke.SkipFrames(1, () => { KeyBoardEvent.ClickFNum(118); //鼠标恢复原位 KeyBoardEvent.DoMouseClick(KeyBoardEvent.lastPoint.X, KeyBoardEvent.lastPoint.Y); }); }
private float GetAngle(MouseEvent mouse) { float k = 0.01f; int dpx = mouse.MouseAfterMoveP.X - mouse.MouseDowendP.X; int dpy = mouse.MouseAfterMoveP.Y - mouse.MouseDowendP.Y; double result = Math.Sign(dpx) * Math.Pow((dpx * dpx + dpy * dpy), 0.5) * k; if (KeyBoardEvent.GetInstance().IsShift) { result *= 0.1; } if (KeyBoardEvent.GetInstance().IsCtrl) { result = ((int)(result * 4 / Math.PI)) * Math.PI / 4; } return((float)result); }
public void GetDrivingMode(MyGame sender, MouseEventArgs e) { Mode ret; //if (e.Button == MouseButtons.Middle || e.Button == MouseButtons.Right) ret = CameraMove.GetInstance(); if (sender.form.TabControll.SelectedIndex == 1) { ret = Nothing.GetInstance(); } else if (sender.form.IsScaleState) { ret = Scale.GetInstance(); } else if (sender.form.IsRotateState) { ret = Rotate.GetInstance(); } else if (KeyBoardEvent.GetInstance().OnKeys[(int)Keys.ShiftKey]) { ret = Add.GetInstance(); } else if (KeyBoardEvent.GetInstance().OnKeys[(int)Keys.ControlKey]) { ret = Remove.GetInstance(); } else if (sender.vS.GetNearSelected(sender.mypmx, sender.Camera, e.Location, 4) != -1) { ret = Move.GetInstance(); } else if (sender.vS.GetNearUsed(sender.mypmx, sender.Camera, e.Location, 4) != -1) { sender.vS.selectedVertexIndex = new int[] { sender.vS.GetNearUsed(sender.mypmx, sender.Camera, e.Location, 4) }; ret = Move.GetInstance(); } else { ret = Select.GetInstance(); } sender.drivingMode = ret; }
/// <summary> /// 执行键盘事件 /// </summary> /// <param name="code"></param> private void doKeyBoardEvent(Code code) { KeyBoardEvent keyboardCode = code as KeyBoardEvent; KeyBoardHook hook = new KeyBoardHook(); if (keyboardCode != null) { switch (keyboardCode.Type) { case KeyBoardType.Key_Down: KeyBoardHook.KeyDown(keyboardCode.KeyCode); break; case KeyBoardType.Key_Up: KeyBoardHook.KeyUp(keyboardCode.KeyCode); break; default: break; } } }
static void CommandSpeed(CommandArg[] args) { KeyBoardEvent.DoMouseClick(Screen.width / 2, Screen.height / 2); SuperInvoke.SkipFrames(1, () => { KeyBoardEvent.ClickFNum(123); KeyBoardEvent.DoMouseClick(KeyBoardEvent.lastPoint.X, KeyBoardEvent.lastPoint.Y); }); }