как получить доступ к текущему слову в любой программе - PullRequest
1 голос
/ 24 августа 2009

Answerers.com имеет приложение панели задач, которое, когда вы нажимаете ALT + щелчок мышью по слову в любой программе, открывает окно с информацией, полученной с их веб-сайта.

Мой вопрос: какие механики программирования и API используются для чего-то подобного? У меня нет опыта разработки приложений для Windows, и я пытаюсь понять, с чего начать. Как получить доступ к текущему слову, на которое указывает мышь?

Кто-нибудь знает какие-либо примеры или программы с открытым исходным кодом, которые делают что-то подобное?

1 Ответ

0 голосов
/ 24 августа 2009

Это было давно, и в прошлый раз, когда я делал что-то подобное, это было в моем собственном редакторе wysiwyg, поэтому у меня был полный доступ ко всем характеристикам шрифта, необходимым для вычисления слова, которое щелкнуло мышью.

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

Через API я хотел бы изучить перехват сообщений клавиатуры и мыши, чтобы ваше приложение могло предварительно обрабатывать каждый щелчок мышью на других приложениях - начните с SetWindowsHookEx и прочитайте все, что вы можете о перехвате сообщений.

После того, как ваше приложение предварительно обработало сообщения, вам нужно захватить текст, по которому вы щелкаете. Поскольку текст может быть нарисован в контексте устройства разными способами, лучше всего делать скриншот области щелчка, потому что текст может существовать только как растровое изображение. Если это так, вам нужно выполнить какое-то распознавание, чтобы перевести очищенное растровое изображение обратно в текст. В других случаях текст может находиться в окне как текст - сообщение WM_GETTEXT может возвращать этот текст из некоторых типов окон (например, текстовых полей, кнопок и т. Д.), Но для обычных окон это сообщение возвращает только заголовок в строке заголовка .

Извините, у меня нет определенного ответа, но это может привести вас в правильное русло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...