我正在尝试在游戏中注册鼠标移动,并且使用 java.awt.Robot 似乎不会注册,除非我手动移动光标,之后屏幕跳转到所有 mouseMove() 方法调用的位置(我正在尝试模拟平滑的光标移动)应该提前给我带来。
r.setAutoDelay(1);
//moves the cursor pixel by pixel
while ((Math.abs(x - fx) > 0) && (Math.abs(y - fy) > 0))
{
r.mouseMove(x, y);
if (x < fx)
x++;
else if (x > fx)
x--;
r.mouseMove(x, y);
if (y < fy)
y++;
else if (y > fy)
y--;
}
(x, y) - 当前屏幕坐标 (fx, fy) - 目的地的屏幕坐标(最终坐标)
我正在尝试找到一种更准确地模拟用户输入的方法(主要是研究人为触发MouseEvent),但是我发现的所有示例要么不适用于java,要么使用Robot类,需要一个小程序或解决了另一个问题。
有什么方法可以自由模仿光标移动吗?
最佳答案
使用带延迟的 for 循环:
try {
// Screen coordinates
Point p = MouseInfo.getPointerInfo().getLocation(); // get current coords
double x = 500;
double y = 200;
double yC = y / x;
// Move the cursor
Robot robot = new Robot();
robot.mouseMove(0, 0);
for(int i = (int)p.x; i < x; i++) {
Thread.sleep(5);
robot.mouseMove(i, (int) (yC * i));
}
}
catch (AWTException e) {}
catch (InterruptedException e) {}
关于java - 以编程方式触发 MouseMove java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60768104/