Java вставить в текущую позицию курсора - PullRequest
0 голосов
/ 11 октября 2009

Я хочу создать простую Java-программу, которая будет вставлять текст в текущую позицию курсора. Эта позиция курсора может быть в любом текстовом редакторе, например, в блокноте. Возможно ли это?

Ответы [ 3 ]

1 голос
/ 11 октября 2009

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

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

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

1 голос
/ 11 октября 2009

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

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

1009 * привет *

0 голосов
/ 11 октября 2009

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

Display.getCurrent().getCursorLocation()

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

...