Как вставить текст в текстовое поле другой программы, используя Java - PullRequest
2 голосов
/ 24 января 2011

Как я могу вставить текст в текстовое поле другой программы, используя Java. Например, Yahoo Messenger Chatbox. Я не пытаюсь сделать бот Yahoo, это всего лишь пример того, что я ищу.

Спасибо!

Ответы [ 2 ]

5 голосов
/ 24 января 2011

Как отметил Джонатон в комментарии, вы можете попробовать использовать java.awt.Robot. Но вам нужно знать точное местоположение целевого текстового поля и отображать его на экране.

Вы можете иметь что-то вроде:

Robot robot = new Robot();
robot.mouseMove(xCoord, yCoord);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.keyPress(50);
robot.keyPress(51);

Кроме того, вам нужно, чтобы приложение предоставило некоторый собственный API для взаимодействия с его формой и использовало его через JNI.

2 голосов
/ 24 января 2011

Вы должны использовать JNI (или, лучше, JNA) и отправлять сообщения Windows в текстовое поле других программ.Я предполагаю, что другая программа не является приложением Swing (в этом случае работает только AWT Robot), и, отправляя собственные сообщения Windows, вы можете надежно найти текстовое поле других программ, даже если оно не имеет фокуса или скрыто в фоне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...