Проблемы с Java Robot. щелчок мыши не работает

#java #awtrobot

#java #awtrobot

Вопрос:

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

джерун.

Ответ №1:

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

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

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

Комментарии:

1. Я попробовал идею, которую вы мне дали, со значком в верхнем углу, я просто нажимаю и перетаскиваю scipt, и у меня все отлично работает… Также во время игры вы можете просто выбрать экран и нажать клавишу f1-9, чтобы использовать предметы. когда я выбираю экран и использую awtrobot, он ничего не делает. я также использовал робота, чтобы сделать снимок экрана, на котором будет щелкать мышь, и этот снимок экрана совпадает с местом, где я пытаюсь щелкнуть, я мог бы предоставить весь мой scrpit, если хотите?

2. Извините за задержку. У меня сейчас нет доступного кода, но я использовал Robot в прошлом, и у меня все работало нормально. Я не совсем понимаю, что у вас не сработало. Вы можете сделать щелчок, используя мышь, так что же не работает?

3. я опубликую свой код позже, я могу использовать все опции из robot на обычном рабочем столе и еще некоторые вещи, такие как paint, в chrome. но есть 1 игра под названием flyff (это игра на c и directx), в которой, когда я пытаюсь щелкнуть или использовать нажатия робота, она просто не работает. и я не знаю, есть ли в игре способ заблокировать java robot. или что он написан на java, а игра — на c . И теперь мой вопрос: если в игре есть способ обнаружить робота, что я могу сделать, чтобы он его не обнаружил. и если это проблема с Java-кодом на c , как я могу это исправить?

4. А также извините за мой поздний ответ

Ответ №2:

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

  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.