Получить содержимое любого активного окна

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

Что я пробовал:

  • Сделайте скриншот текущего активного окна, примените некоторые фильтры и запустите алгоритм OCR (tesseract .Net wrapper). Это работает, но занимает много времени и не очень точно.
  • Затем я попробовал некоторые функции Windows API (FindWindow и SendMessage), как описано здесь. Я мог бы сделать это для стандартного редактора (блокнота), например, но не для большинства других программ
  • Я также попытался заставить его работать с AutoHotKey и функцией WinGetText и снова .Net Wrapper. Здесь я просто получаю некоторую информацию об окне, но никоим образом не текст его...

К сожалению, сейчас у меня нет никакой другой идеи, что делать, потому что я застрял во всех отношениях... Кто-то имеет опыт с этим или знает, как это работает? Любое предложение действительно высоко ценится

1 ответ

Будет трудно найти единственное решение для извлечения текста из приложений. Для разных программ потребуются разные методы.

Для AutoHotkey, AccViewer, который использует Acc.ahk, является лучшим методом первой инстанции. Acc работает с большим количеством элементов управления, а также с элементами в элементах управления, он может охватывать гораздо больше типов элементов управления, чем AutoHotkey ControlGet команда.

Acc Library [AHK_L] (обновлено 27.09.2012) - Сценарии и функции - Сообщество AutoHotkey
https://autohotkey.com/board/topic/77303-acc-library-ahk-l-updated-09272012/

Accessible Info Viewer - Выпуск Alpha (2012-09-20) - Сценарии и функции - Сообщество AutoHotkey
https://autohotkey.com/board/topic/77888-accessible-info-viewer-alpha-release-2012-09-20/

Ссылка, описывающая некоторые дополнительные методы поиска текста:

AutoHotKey ControlGet

Обратите внимание также:

COM (объектная модель компонентов), изначально обрабатывается AutoHotkey. Его можно использовать для извлечения текста из веб-элементов в Internet Explorer, а с помощью кода VBA текст можно извлекать из программ MS Office, таких как MS Excel и MS Word.

Другие вопросы по тегам