开发者

How can I make Robot press and hold a mouse button for a certain period of time?

I am using Java to generate a mouse press using the Robot class:

robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_开发者_JAVA技巧MASK);

However, I want the Robot to press the button for a certain period of time. How can I achieve this?


Just sleep a bit between the two actions (specified in milliseconds):

  1. Thread.sleep(long millis);

    robot.mousePress(InputEvent.BUTTON1_MASK);
    try { Thread.sleep(1000); } catch(Exception e) {} // Click one second
    robot.mouseRelease(InputEvent.BUTTON1_MASK);
    
  2. Robot.delay(long millis);

    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.delay(1000); // Click one second
    robot.mouseRelease(InputEvent.BUTTON1_MASK);
    


I did that, it's simple: when you detect the mouse is pressed, you save the System.currentTimeMillis(). When you detect the mouse is released, you just check how long it was pressed.

If you want the action to be made after a certain amount of time, even if the mouse is still pressed, you start a thread that lives the desired amount of time when pressed and you interrupt it when releasing. If the thread isn't interrupted in the amount of time you wanted, the action will be performed.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜