Абсолютная позиция ввода с клавиатуры (мигающий курсор) - PullRequest
1 голос
/ 11 октября 2009

Можно ли создать Java-программу, которая будет определять абсолютную позицию (x, y на экране) мигающего курсора клавиатуры? Этот курсор может быть в любом текстовом редакторе.

Ответы [ 2 ]

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

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

Теоретически вы можете сделать это, если:

  • Программа явно экспортирует через некоторые API вызовы местоположения курсора

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

    • Если вам нужно относительное (например, число символов вместо числа пикселей) в редакторе, то каким-то образом используйте распознавание краев для определения размера редактора, некоторые дополнительные приемы обработки изображений для определения размера шрифта и вычисления смещений на основе символов .
  • Если редактор использует стандартные API-интерфейсы ОС (например, Windows) для рисования как окна редактирования, так и курсора, теоретически было бы правдоподобно подключиться к системе для перехвата этих вызовов - мне не хватает почти суммы знания о том, какими могут быть эти API или, если таковые вообще существуют, насколько возможно их перехватить, и способны ли программы на Java сделать это, даже если это теоретически возможно.

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

Вопрос здесь не в том, что возможно или нет, вопрос в том, с какой целью я хочу сделать это? Честно говоря, я не вижу никакой причины, и я устал от надоедливых мини-приложений, которые действуют как шпионское ПО. Вы пытаетесь скопировать существующее приложение в другую форму массового террора? Прошу прощения, если вы находите мой комментарий оскорбительным, но это мой ответ. Другой вопрос: почему?

...