Кажется, что ключевые действия Java-робота перестают работать, пока работает определенное программное обеспечение - PullRequest
2 голосов
/ 11 марта 2010

Я пишу Java-приложение для автоматизации действий персонажа в онлайн-игре на ночь (в частности, оно ловит рыбу в Final Fantasy XI).Приложение интенсивно использует класс Robot java как для эмуляции ввода с клавиатуры пользователя, так и для обнаружения изменений цвета в определенных частях экрана.Он также использует многопоточность и свинг-графический интерфейс.

Приложение, кажется, отлично работает, когда я тестирую его без запуска игры, просто используя скриншоты для запуска ответов приложений в блокнот.Но по какой-то причине, когда я фактически запускаю FFXI и запускаю программу, все мои манипуляции с клавиатурой и мышью просто перестают работать вообще.Программа все еще работает, и класс Robot по-прежнему способен считывать цвета пикселей.Но Robot.keyPress, Robot.keyRelease, Robot.mouseMove, Robot.mousePress и Robot.mouseRelease все ничего не делают.Это самая странная вещь - чтобы проверить это, я написал простой цикл, который просто продолжает печатать буквы, и сфокусированный блокнот.Я бы тогда запустил игру, перефокусировал блокнот, и ничего бы не получилось.Затем я выйду из игры, и она сразу же начнет работать снова.

Кто-нибудь еще сталкивался с чем-то подобным, где определенное программное обеспечение не дает работать определенным функциям Java?

Кроме того, чтобы сделать это более интересным ... В прошлом году я написал очень похожую программу, использующую те же классы и методы программирования, чтобы автоматизировать лечение группы в игре, когда они сражаются.В прошлом году эта программа работала отлично.Столкнувшись с этими проблемами, я откопал эту старую программу, запустил ее без каких-либо изменений и обнаружил, что у нее тоже были те же проблемы.Единственные различия между сейчас и когда это работало: я работал под управлением Windows Vista, и теперь я использую Windows 7, и было выпущено несколько новых версий Java, а также версий FFXI.

Что, черт возьми, происходит?на?(если кому-то понадобится увидеть мой исходный код, напишите мне по адресу mikejturley@gmail.com. Я пытаюсь сохранить его при себе.)

Ответы [ 2 ]

3 голосов
/ 11 марта 2010

FFXI имеет код для предотвращения мошенничества. Казалось бы, довольно эффективно.

0 голосов
/ 14 апреля 2010

Если возможно, попробуйте в WinXP . Я сам также написал бота для онлайн-игры, в котором используются многие из тех же понятий (т. Е. Использование робота Java для считывания цветов пикселей и симуляции нажатий клавиш и щелчков мыши).

Под WinXP: Бот работает как задумано во всех случаях.

Под Win7: Вне игры бот работает как задумано. Внутриигровой, симулированный ввод не удался (думаю, считывание пикселей было в порядке).

...