Как я могу заставить робота нажать и удерживать кнопку мыши в течение определенного периода времени? - PullRequest
3 голосов
/ 19 июня 2011

Я использую Java для генерации нажатия мыши с помощью класса Robot:

robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);

Однако я хочу, чтобы робот нажимал кнопку в течение определенного периода времени.Как мне этого добиться?

Ответы [ 2 ]

10 голосов
/ 19 июня 2011

Просто поспите немного между двумя действиями (указанными в миллисекундах):

  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);
    
0 голосов
/ 19 июня 2011

Я сделал это, все просто: когда вы обнаруживаете, что мышь нажата, вы сохраняете System.currentTimeMillis().Когда вы обнаружите, что мышь отпущена, вы просто проверяете, как долго она была нажата.

Если вы хотите, чтобы действие выполнялось через определенное время, даже если мышь все еще нажата, вы запускаете потокпри нажатии она живет желаемое количество времени, а вы ее прерываете при отпускании.Если поток не прерывается в течение требуемого вами времени, действие будет выполнено.

...