Как получить текст под мышью в любом открытом окне - PullRequest
2 голосов
/ 17 июня 2011

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

Мой вопрос заключается в том, как определить слово, которое находится под курсором мыши на экране, в любом приложении, например в офисе Microsoft или в веб-браузерах и т. Д.

Я ищу любые советы и руководства или любые коды, которые могут мне помочь.

Ваше сотрудничество высоко ценится.

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

Вам нужно будет поиграть с Win API, перехватывая вызовы GDI, которые выводят текст на экран.

Как предложено в этом ответе на SO,

Обычно для элементов управления GDI вы можете получить позицию и размер элемента управления, и вы обычно можете получить информацию о шрифте. Например, со статическими текстовыми элементами управления вы бы использовали WM_GETFONT . После этого вы можете получить положение мыши относительно положения элемента управления и использовать одну из функций шрифта, например что-то вроде GetTextExtentPoint32 , чтобы выяснить, что находится под курсором.

Так что попробуйте найти что-то в этом направлении.

0 голосов
/ 17 июня 2011

Вы можете имитировать те же функции, что и Spy ++, и захватывать события WM_MOUSEMOVE, предварительно фильтровать их и обнаруживать всякий раз, когда мышь находится над текстовым полем или подобным элементом управления.

Конечно, это будет нелегко, и потребует много работы и исследований!

...