#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.