Java Робот: способы остановки во время цикла - PullRequest
1 голос
/ 08 мая 2020

Я создаю простого бота для этой игры fla sh на моем p c. Бот ведет себя отлично, но я ищу способ остановить или приостановить работу бота в середине его цикла.

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

При этом я мог нажать клавишу, и робот немедленно остановился бы.

Вот мой текущий код для контекста:

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.IOException;

public class Digging {

    public static void main(String[] args) throws IOException, AWTException {

        Robot robot = new Robot();
        robot.delay(5000); // buffer time to click over to browser
        action(robot);

    }

    public static void action(Robot robot) {

        robot.mouseMove(1140, 415);

        for (int x = 0; x < 1000; x++) {
            for (int i = 0; i < 3; i++) {
                // dig
                robot.mousePress(InputEvent.BUTTON1_MASK);
                robot.delay(200);
                robot.mouseRelease(InputEvent.BUTTON1_MASK);
                robot.delay(300);
                // move
                robot.keyPress(KeyEvent.VK_RIGHT);
                robot.delay(100);
                robot.keyRelease(KeyEvent.VK_RIGHT);
            } // dig right
            for (int i = 0; i < 3; i++) {
                // dig
                robot.mousePress(InputEvent.BUTTON1_MASK);
                robot.delay(200);
                robot.mouseRelease(InputEvent.BUTTON1_MASK);
                robot.delay(300);
                // move
                robot.keyPress(KeyEvent.VK_LEFT);
                robot.delay(100);
                robot.keyRelease(KeyEvent.VK_LEFT);
            } // dig left
        } // dig
    } // action
} // driver
...