我模拟鼠标点击,我想尽可能快地做到这一点。如何在Java中尽可能快地模拟鼠标点击?
目前我使用机器人类本:
private static int milliSecondClickDelay = 25;
public static void leftClickMouse(){
Main.robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
Main.robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
Main.robot.delay(milliSecondClickDelay);
Main.robot.mouseMove(0, 0);
}
不幸的是我必须使用延时,否则我得到其中释放之前移动鼠标,则注册的竞争条件。
25是我可以使用而不遇到这个问题的最低延迟,但是我所做的任务需要14秒。我已经下降到6秒,延迟5毫秒,但结果是非常不一致。
我可以通过另一种方式模拟点击吗?
在此先感谢。
更新:
我已经更新的功能是:
public static synchronized void leftClickMouse(){
Main.robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
Main.robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
Main.robot.waitForIdle();
Main.robot.mouseMove(0, 0);
}
的Robot.waitForIdle()等待,直到目前的事件队列中的所有事件被处理,但问题依旧那里。
我想你可以使用本地代码在操作系统的系统消息队列中排列鼠标点击消息。我不知道如何在我自己的操作系统,Windows中做到这一点,更不用说所有其他人。 –