每当我运行机器人的
mouseMove
命令时,鼠标并不总是移动到同一位置。例如,我有以下代码:import java.awt.Robot;
import java.util.concurrent.TimeUnit;
public class MainBot {
public static void main(String[] args){
try {
Robot screenWin = new Robot();
TimeUnit.SECONDS.sleep(2);
screenWin.mouseMove(100, 300);
} catch (Exception e) {
e.printStackTrace();
}
}
}
通常代码会让鼠标停留在X:
首先,我点击运行(我使用的是eclipse),并将鼠标移动到一个位置(在2秒计时器结束之前)。然后2秒延迟结束,鼠标移动,然后脚本结束。问题是,鼠标似乎从未到达过完全相同的位置。例如,鼠标应该移动到 (100, 300)
,但大多数情况下它移动到类似于 (0, 300)
的某个位置。但其他时候,如果我在开始时将鼠标移动到大致应该的位置,则它会移动到正确的位置。
我正在使用 Paint 获取屏幕截图的像素位置来获取鼠标应该出现的位置,但我认为那不是问题所在,因为位置一直在变化。
是否有什么我没有注意到的关于 mouseMove
坐标如何工作的内容?
编辑:基本上,我用该程序点击开始,然后我将鼠标移动到一个新位置(因此在 mouseMove
函数之前有不同的初始位置),然后 mouseMove
执行。每次这样做,鼠标都会移动到不同的位置。
main
函数。我增加了一点澄清。 - DarkHorse