|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
|
Как распознавать текст из работающей Windows-программы?04.03.2018, 18:48. Показов 2286. Ответов 20
Метки нет (Все метки)
Очень прошу помочь советом!
Есть программа, которая выдает вот такие данные с интервалом в пару секунд: Необходимо в режиме реального времени сканировать окно программы и, при выполнении некоторых условий, выполнять некоторые действия с этими данными. Программу, обрабатывающую эти данные я уже написала, но приходится постоянно скриншотить и, затем, получать данные со скриншотов вручную. Адский труд! Можно ли как-то усовершенствовать мою программу, чтобы она сама снимала данные и потом уже выполняла то, что уже умеет? Причем, важны не только числовая и символьная информация, но также и цвет текста и цвет фона, которые тоже нужно сканировать и учитывать в расчетах. Плюс название в шапке окна тоже меняется время от времени и его тоже нужно сканировать и учитывать. Задачу облегчает то, что данные все время находятся на одном и том же месте. Меняется только содержимое. Можно было бы привязать координатные рамки, распознающие текст и цвет, для каждой надписи к левому-верхнему (например) углу окна. Я не знаю, возможно ли такое вообще соорудить. Очень прошу подсказать с чего начать и в каком направлении двигаться. Может быть есть уже готовые компоненты способные распознавать текст и цвет с экрана монитора компьютера?
0
|
|
| 04.03.2018, 18:48 | |
|
Ответы с готовыми решениями:
20
Создание портативной программы, работающей с WPF и Windows Forms Как добраться до апликейшана работающей программы 1С Как сделать выход из цикла работающей программы ? |
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
|
| 05.03.2018, 01:34 [ТС] | |
|
Подскажите хотя-бы, возможно ли такое вообще сделать?
____________ Видео почему-то не работает. Хотя по ссылке без проблем открывается.
0
|
|
|
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,374
|
|
| 05.03.2018, 01:38 | |
Сообщение было отмечено alicesmagic3d как решение
Решение
попробуй GetPixel из winapi. правда она тормознутая
1
|
|
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
|
| 05.03.2018, 02:59 [ТС] | |
|
Спасибо! Направление ясно. Подскажите уж заодно и толковую книжку по winapi, пожалуйста.
В литературном топике ничего не нашла.
0
|
|
|
Джоуи
|
|
| 06.03.2018, 01:50 | |
Сообщение было отмечено alicesmagic3d как решение
Решение
Ну толковее чем MSDN Вы вряд ли найдете https://msdn.microsoft.com/en-... 85%29.aspx
Если инглиш хромает вот довольно обширный каталог переведенных статей http://vsokovikov.narod.ru/New... x_msdn.htm И мой любимый справочник по WinAPI (правда не скрупулезный, не доскональный, но если та или иная функция не до конца понятна, дается еще куча похожих или взаимосвязанных ссылок, да и объединение в категории хорошо) Первые шаги Но все равно WinAPI всегда будет сложной темой для новичка, учтите. Не по теме: It's dangerous to go alone, take this...
1
|
|
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
| 06.03.2018, 02:25 | |
|
Может быть, проще разобраться, откуда эти данные берутся?
1
|
|
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
||
| 06.03.2018, 02:53 [ТС] | ||
|
Black Fregat, а как разобраться откуда? Взламывать программу? Это уже совсем другая тема и лезть в нее не интересно. А так может хоть программировать научусь)
0
|
||
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
||
| 06.03.2018, 07:40 | ||
|
Слишком мало данных..
1
|
||
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
||
| 06.03.2018, 13:29 [ТС] | ||
|
Долго объяснять... да и не стоит оно того. Почитала про винапи, выяснила, что проще его изучать из С++. Так что Лазарус пока откладывается в сторону. Всем спасибо за помощь!
0
|
||
|
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,374
|
||
| 06.03.2018, 13:51 | ||
|
1
|
||
|
Супер-модератор
|
||
| 06.03.2018, 14:22 | ||
|
2
|
||
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
||
| 06.03.2018, 22:18 [ТС] | ||
|
Начнем с того, что систематизированной информации по винапи в интернете не так уж и много и практически вся она (по крайней мере так заявляют авторы публикаций) требует хотя бы минимальных знаний по С++. И чего плохого в том, если я, (рискну показаться нескромной) освоив азы Делфи и Лазаруса, дополнительно освою уж и азы С++, прежде чем возьмусь за изучение ВинАпи? По крайней мере, только начав рыться в материалах, которые я нашла по ВинАпи самостоятельно, и в материалах, которые мне любезно предоставил Joey, я сразу же уткнулась в совершенно незнакомый мне синтаксис. И что прикажете с этим делать? "...Так как "официальные" справка и примеры работы с API предполагают работу на С или C++, и это может вызвать трудности у человека, знакомого только с Delphi..." "...Авторы книг по Delphi стараются как можно быстрее перейти к описанию возможностей различных библиотек, оставляя в стороне другие важные вопросы. ""За бортом" остается множество тем, касающихся более низкоуровневых средств, которые в большинстве своем неплохо документированы и описаны в книгах, проиллюстрированы готовыми примерами, которые, правда, обычно даются на C++. Конечно, немного опыта — и код переведен с C++ на Delphi..." А.Б.Григорьев "О чем не пишут в книгах по Delphi" Заметили? "Конечно, немного опыта — и код переведен с C++ на Delphi..." Вот как раз опыта знакомства с С++ у меня пока нет. И при этом Лазарус, это даже не совсем Делфи, так что я не знаю какие подводные камни таит в себе этот путь (Си -> Делфи -> Лазарус). И какое количество раз мне придется "идти на поклон" к корифеям этого форума за ответами на свои идиотские вопросы.
0
|
||
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
||
| 06.03.2018, 22:40 [ТС] | ||
0
|
||
|
602 / 550 / 210
Регистрация: 24.01.2012
Сообщений: 1,352
|
||||||
| 07.03.2018, 14:08 | ||||||
Сообщение было отмечено alicesmagic3d как решение
Решение
1
|
||||||
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
|
| 07.03.2018, 14:33 [ТС] | |
|
Ого! Спасибо огромное!!! Теперь есть от чего танцевать)
Буду изучать ваш код и экспериментировать с цветом. Распознаванием текста займусь потом, когда придет полное понимание как получать и использовать полученный массив пикселей с уже известными цветами. Может и у самой получится придумать алгоритм распознавания символов на основе имеющейся информации по расположению пикселей фона и пикселей самого символа. Еще раз, огромное спасибо вам за помощь!!!
0
|
|
|
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,374
|
|
| 07.03.2018, 15:03 | |
|
Вообще, если по хорошему, то текст это тоже окно, достаточно выловить его хендл и не нужно все это мракобесие с распознаванием картинки, лучше копать в эту сторону.
1
|
|
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
| 07.03.2018, 15:06 | |
|
1
|
|
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
||
| 08.03.2018, 01:41 [ТС] | ||
|
"Он может отрисовываться напрямую" но проверить то не помешает, раз уж есть такая возможность обойтись без мракобесия))) Не могли бы вы показать это вылавливание (если, конечно, это не займет много вашего времени) на примере следующей строки: "Вылови меня"
0
|
||
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
| 08.03.2018, 06:03 | |
|
Есть программы, которые позволяют увидеть всю иерархию окон - WinSight32, SpyXX и другие.
SpyXX вроде как входит в поставку Visual Studio Или программно - через функции типа FindWindowEx, EnumChildWindows и другие того же гнезда
1
|
|
| 08.03.2018, 06:03 | |
|
Помогаю со студенческими работами здесь
20
Как зделать чтобы было видно иконка работающей программы в правом нижнем углу Можно ли распознавать текст защитного кода? А можно ли установить Windows ХР в другой раздел при работающей Windows Vista? Удалить Windows XP, оставив работающей Winows 7. Windows XP был установлена первой.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|