Как я могу определить текст, где находится указатель мыши, используя C #? - PullRequest
0 голосов
/ 04 декабря 2010

Я ищу способ, позволяющий определить текст, где находится указатель мыши, для любого стандартного приложения Windows (IE, Firefox, Word, Notepad и т. Д.), Которое пользователь использует в настоящее время. Это возможно ? (Это не для злых целей, честно!). Я пробовал поискать в Google и ТАК, но пока ничего полезного не получил.

Ответы [ 4 ]

2 голосов
/ 04 декабря 2010

В зависимости от того, на что вы указываете, в некоторых случаях он может работать.

например. Вы можете получить основной дескриптор окна (hwnd) и отправить ему wm_gettext, и вы можете получить то, что вы хотите вернуть. (например, текст на кнопках, текстовые поля, некоторые ярлыки и т. д.)

однако, он не будет делать то, что вы хотите, если вы укажете на страницу браузера или около того ..

Мех, CodeInChaos победил меня в этом ..

2 голосов
/ 04 декабря 2010

Несколько идей:

  1. используйте win32 api, чтобы найти элемент управления под курсором. Затем используйте управляющий код, чтобы получить часть текста под курсором. В простых случаях достаточно WM_GetText
  2. Я смутно припоминаю, что есть API-интерфейс, который делает именно то, что вы хотите. Но я не помню, как это называется. http://msdn.microsoft.com/en-us/library/ms697707.aspx может быть отправной точкой.
  3. OCR, не должно быть слишком сложно с известным шрифтом

Я бы попробовал реализовать идею доступности.

0 голосов
/ 04 декабря 2010

Вы можете сделать снимок экрана, а затем использовать OCR для перевода изображения в текст. Я думаю, что вы можете запросить ОС о положении курсора мыши, а затем сопоставить, где она находится на изображении.

Не очень хорошее решение, но оно дает вам кое-что.

0 голосов
/ 04 декабря 2010

Нет, это невозможно - по крайней мере, в общем. Единственная возможность состоит в том, чтобы запросить приложение, которое выводит текст на экран, по сути, спрашивая его «что вы поместили в это место?»

...