Проблемы с Java-роботом. щелчок мышью не работает - PullRequest
4 голосов
/ 10 ноября 2011

У меня проблемы с Java-роботом, я использую его для создания пиксельного бота для игры.когда я использую робота, чтобы нажимать, ничего не происходит, я слышал, что есть больше проблем с людьми, которые не могут щелкать определенные приложения.Но я не мог найти никаких решений для этого.Я также читал о, возможно, отслеживании движения мыши.но это кажется странным, так как нажатие клавиши также не работает.Игра, которую я пытаюсь щелкнуть, вероятно, c ++ и DirectX.Я на 100% уверен, что мой код работает, так как я могу перемещать значки десктопов с ним и делать больше вещей.Так есть ли способ это исправить?или мне нужно использовать другой язык?Спасибо!

Йерун.

Ответы [ 2 ]

2 голосов
/ 10 ноября 2011

Типичная ошибка при работе с роботом состоит в том, что ему требуется абсолютная экранная координата.Иногда люди (включая меня) получают относительную координату кнопки относительно ее окна и пытаются нажать на нее с помощью робота.Убедитесь, что вы можете найти абсолютную координату элемента экрана, который вы пытаетесь щелкнуть.

Чтобы быть уверенным, что робот работает, найдите координаты некоторой иконки на рабочем столе, например, поместите какую-либо иконку в верхнем левом углу.экрана и нажмите точку 20х20.Вы увидите эффект.

К сожалению, вы не предоставили свой код, поэтому я не могу дать вам лучший ответ.

0 голосов
/ 16 января 2012

Попробуйте это

 public class Main {

    private Robot robot = new Robot();

    public Main() throws AWTException, IOException {
        robotMouseClick(600, 600);
}

    private void robotMouseClick(int x, int y) {
        robot.mouseMove(x, y);
        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.mouseRelease(InputEvent.BUTTON1_MASK);
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws AWTException, IOException {
        new Main();


      }
}

это сработало для меня

Что касается бота, вы не можете сделать что-то особенное для любого процесса вне JVM.

...