Что нового

[Элементы GUI] Как отловить текст из неотлавливаемых контролов?

EqKeeper

Новичок
Сообщения
29
Репутация
1
Доброго времени суток! Возникла следующая проблема. В некоторых приложениях, ни Window Info, ни функции вроде _WinAPI_EnumChildWindows не могут найти контролов. Тем не менее (как это не парадоксально) они там есть. Чаще всего проблемы возникают при попытке считать информацию из Label, которая находится в GroupBox. Иногда проблемы возникают с кнопками. В качестве примера можно привести кнопки поиска и замены в Excel. Но это не столь важно - там обхожусь {Tab}'ами. Но в данном случае нужно считать текст Label'а. Есть идеи - как это можно сделать? Лэйблы не выделябельные, не копирабельные, любым софтинам невидимые... но считать их как-то надо... Хоть пиши макрос для снятия скриншота и распознавания в FineReader! >_<

Заранее спасибо!
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Элементы GUI] Проблема при работе с Control'ами

EqKeeper
1.
Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Как правильно называть темы



С уважением, Модератор раздела.








2. В самом сообщении, настолько общие понятия, что тема почти философская. больше конкретики, начиная от типа софта заканчивая тем что уже было сделано.
в противном случае, тема плавно перейдет в раздел для общения.
 
Автор
E

EqKeeper

Новичок
Сообщения
29
Репутация
1
1. Уважаемый модератор, проблема слишком специфична и ее исходное название не влезло в Edit темы. Мои извинения. Переименовал. Надеюсь, теперь лучше.
2. Ты не прав (говорю тебе, как пользователю, а не модератору ;)). Проблема действительно обширная, однако я привел пример приложения - Excel 2003, диалоговое окно Найти и Заменить, неотлавливаемые кнопки нижней панели. О том, что было сделано я тоже написал:
- Пробовал поймать Window Info - не поймалось.
- Пробовал использовать функцию _WinAPI_EnumChildWindows с поиском невидимых - не поймалось.
В случае необходимости кликнуть, я получаю координаты окна, прибавляю смещение по x и y, щелкаю мышкой. Но сейчас возникла необходимость получить Text (Caption, Title - как угодно) одного из таких контролов. Конкретно - TLabel (или его аналог). Учитывая то, что контрол невозможно отловить функциями WinAPI, то это не получится сделать вообще. Поэтому для меня важнее любым способом получить текст. К сожалению, в тексте есть числовые значения и их нужно выделить, поэтому контрольная сумма пикселей в данном случае не годится.
Если существует какой-либо грабер, способный на вход принять скриншот, а на выход выдать текстовую строку (работающий в командой строке) - это было бы оптимально. Или просто достаточно легкий грабер. Использовать для этого FineReader было бы извращением, однако, если других вариантов не будет, то придется написать еще и макрос для работы с ним... но нехотелось бы. Очень.

Надеюсь, теперь, когда я более подробно описал проблему, кто-нибудь сможет помочь. :smile:
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
219
Было бы не плохо знать, где вы этот TLabel нашли.

А насчёт Excel, там вроде бы можно писать макросы на бэйсике. Вероятно можно сделать макрос, который будет например записывать нужное значение в текстовый файл и работать уже с этим файлом.

Зы
Где то попадалась программа-качалка с файлообменников, к ней прилагалась консольная программа, которая распознавала капчи. Поищу.
 
Автор
E

EqKeeper

Новичок
Сообщения
29
Репутация
1
Неплохо бы, но, увы, абсолютно невозможно. На гране коммерческой тайны. Да и не столь принципиально это. Просто в некотором отношении очень кривая программа.
За консольную распознавалку буду премного благодарен!
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
EqKeeper
http://forum.script-coding.info/viewtopic.php?id=2938
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Если в каком-то элементе есть текст, то его 100% можно получить (без всяких "капчей"). Но поскольку твоя программа из разряда "совершенно секретно", то... :alien: А этот текст случаем не сидит в StatusBar'е?
 
Автор
E

EqKeeper

Новичок
Сообщения
29
Репутация
1
WSWR, спасибо! (но облегченные варианты, конечно, приветствуются!).
Yashied
Нет, я же писал - он сидит в Label (метка). А StatusBar вообще отсутствует. Кстати, спасибо, что напомнил - забыл добавить, этот контрол сидит внутри GroupBox. Сам групбокс отловить можно, но увы - в дочерних тоже ничего не отловить. Возможно, нужно повлиять как-то на сам групбокс, чтобы стали видны его потомки?.. При этом немного выше торчит еще один групбокс, в котором находятся Edit'ы - они прекрасно отлавливаются.
Не, не "совершенно". Просто "секретно". ;)
 
Верх