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; } } }
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); //抬起 }