Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
 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); });
 }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 6
0
        /// <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;
                }
            }
        }
Ejemplo n.º 7
0
 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); });
 }