2009-10-10 5 views

ответ

1

Это взломать, но посмотрите на java.awt.Robot. Он позволяет программным образом делать щелчки мыши и нажатия клавиш, среди множества других полезных вещей. Так один из способов сделать это будет:

  1. статья Используйте Atmocreations', чтобы поместить текст в буфер обмена
  2. Если вы хотите, чтобы вставить его, используйте робота, чтобы нажать на текущей позиции (если вам нужно дать что поле фокус)
  3. Использование роботов нажать Ctrl-V (или любой другой система ожидает пасты)

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

+0

Я использую: robot = new Robot(); \t robot.keyPress (KeyEvent.VK_CONTROL); robot.keyPress (KeyEvent.VK_V); robot.keyRelease (KeyEvent.VK_V); robot.keyRelease (KeyEvent.VK_CONTROL); и он работает. Благодарю. P.S. Я попытался с robot.keyRelease (KeyEvent.VK_PASTE); но он вызывает ошибку – dede

+0

@peri: это работает, даже если фокус находится в другом окне? – Atmocreations

+0

нет, он работает только для окна в фокусе – dede

1

Использование this article в качестве основы о копировании/вставке, вы можете увидеть, что вы можете только поместить что-то в буфер обмена, но не напрямую изменять содержимое текстового поля внешнего процесса.

Возможно, вы захотите получить дескриптор окна окна и отправить ему сообщение с помощью Windows API. Это работает только на Windows, я не знаю, есть ли эквивалентный способ для Mac OS/Linux. Возможно, это даже не работает непосредственно из java. Вам потребуется ввести некоторые C/C++ - код и использовать Java Native Interface (JNI)

приветы

+0

спасибо. Я попробую с JNI – dede

0

Если и просят для текущего местоположения курсора, я думаю, и должны использовать это:

Display.getCurrent().getCursorLocation() 

Имея местоположение курсора, что делать дальше, требует дальнейших подробностей. Если вы хотите автоматически записать текст в зарубежные приложения, такие как Word или Notepad, это звучит скорее как вирус для меня.

+0

Да, я хочу писать в любой текстовый редактор (например, Блокнот), и я делаю что-то вроде утилиты буфера обмена (аналогично http://www.deepskyblue.net/software/sanvient/en/) , Я не могу понять, как эта программа может писать любой текстовый ввод. – dede