示例#1
0
        private void ProcessInputCommand(InputCommand inputCommand)
        {
            if (inputCommand.MouseInput != null)
            {
                MouseInput mouseInput = inputCommand.MouseInput;
                var        x          = (int)(mouseInput.X / ScreenshotScale);
                var        y          = (int)(mouseInput.Y / ScreenshotScale);
                switch (mouseInput.MouseInputType)
                {
                case MouseInput.MouseInputEnum.Move:
                    //MouseAPI.Move(x, y);
                    _topMostForm.DrawCursor(x, y);
                    break;

                case MouseInput.MouseInputEnum.Down:
                    _topMostForm.DrawCursor(x, y);
                    if (mouseInput.LeftButton)
                    {
                        MouseAPI.LeftButtonDown(x, y);
                    }
                    else
                    {
                        MouseAPI.RightButtonDown(x, y);
                    }
                    break;

                case MouseInput.MouseInputEnum.Up:
                    _topMostForm.DrawCursor(x, y);
                    if (mouseInput.LeftButton)
                    {
                        MouseAPI.LeftButtonUp(x, y);
                    }
                    else
                    {
                        MouseAPI.RightButtonUp(x, y);
                    }
                    break;

                case MouseInput.MouseInputEnum.Click:
                    _topMostForm.DrawCursor(x, y);
                    if (mouseInput.LeftButton)
                    {
                        MouseAPI.LeftButtonClick(x, y);
                    }
                    else
                    {
                        MouseAPI.RightButtonClick(x, y);
                    }
                    break;
                }
            }
        }
示例#2
0
        public void SendLeftMouseClick(int x, int y)
        {
            //Win32API.SetForegroundWindow(WindowHandle);

            //Win32API.SendMessage(WindowHandle, Win32API.WM_LBUTTONDOWN, Win32API.MK_LBUTTON,
            //        Win32API.MAKELONG(x, y));

            //Win32API.SendMessage(WindowHandle, Win32API.WM_LBUTTONUP, Win32API.MK_LBUTTON,
            //        Win32API.MAKELONG(x, y));
            //var r = System.Windows.Forms.Screen.PrimaryScreen.Bounds;
            CursorApi.SetCursorPos(x, y);
            //Win32API.mouse_event(MouseEventFlag.Move  | MouseEventFlag.Absolute, x * 65535 / r.Width, y * 65535 / r.Height, 0, 0);//移动到需要点击的位置
            MouseAPI.mouse_event(MouseEventFlag.LeftDown | MouseEventFlag.Absolute, 0, 0, 0, 0);           //点击
            MouseAPI.mouse_event(MouseEventFlag.LeftUp | MouseEventFlag.Absolute, 0, 0, 0, 0);             //抬起
        }