Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Достать текст из Label чужого приложения, текст из Label 
:(
    Опции темы
Prospekt
Дата 23.12.2012, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 30.5.2012

Репутация: нет
Всего: 1



Собственно вопрос озвучен, есть приложение, и у него есть несколько Label-ов. Как получить текс с них? Принимаются к рассмотрению любые извращения.

Идентицифировать (различать) Label-ы можно, например, зная или их Id (index) или их расположение.

Темы: 
http://forum.vingrad.ru/topic-94012.html#st_15_view_0
http://forum.vingrad.ru/topic-186181.html
прочитаны, задача пока актуальна.

Мне нужно именно считать текст, а не изменять.

PM MAIL   Вверх
Illusion Dolphin
Дата 23.12.2012, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 4
Всего: 63



TLabel - графический котрол, своего окна не имеет и данные хранит по какому-то адресу в памяти, искать его я бы не стал. 

Имхо тут поможет только OCR ( http://stackoverflow.com/questions/4043876...ry-should-i-use )


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Prospekt
Дата 23.12.2012, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 30.5.2012

Репутация: нет
Всего: 1



Это было первое, что пришло мне в голову. Но почему-то кажется, что это не оптимальное решение, что найти этот самый Label всеже будет проще.
Ещё предложения?
PM MAIL   Вверх
Illusion Dolphin
Дата 23.12.2012, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 4
Всего: 63



Цитата

 что найти этот самый Label всеже будет

Удачи! 


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
northener
Дата 23.12.2012, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: нет
Всего: 20



Цитата(Prospekt @  23.12.2012,  18:32 Найти цитируемый пост)
что найти этот самый Label всеже будет проще

Если этот самый Label это TLabel, то его нельзя "найти".


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
bems
Дата 23.12.2012, 19:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 21
Всего: 88



попробуй перехватить api отрисовки текста, и вычислить нужную строку по хендлу окна-родителя TLabel и координатам в нём


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Prospekt
Дата 23.12.2012, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 30.5.2012

Репутация: нет
Всего: 1



Цитата

попробуй перехватить api отрисовки текста, и вычислить нужную строку по хендлу окна-родителя TLabel и координатам в нём 

А можно пример. Каким образом можно перехватить?
PM MAIL   Вверх
Ne1tr1n0
Дата 23.12.2012, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 1.3.2009

Репутация: 2
Всего: 8



PM MAIL   Вверх
northener
Дата 24.12.2012, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: нет
Всего: 20



Цитата(Prospekt @  23.12.2012,  13:31 Найти цитируемый пост)
есть приложение, и у него есть несколько Label-ов. Как получить текс с них?

Кстати сначала стоит убедиться, что это именно Label-ы. Вполне вероятно, что это стандартные Windows контролы STATIC TEXT. И хуки никакие не нужны будут.


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
bems
Дата 24.12.2012, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 21
Всего: 88



Цитата(Prospekt @  23.12.2012,  21:01 Найти цитируемый пост)
А можно пример. Каким образом можно перехватить? 

загугли "перехват api"


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Prospekt
Дата 24.12.2012, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 30.5.2012

Репутация: нет
Всего: 1



Цитата

Кстати сначала стоит убедиться, что это именно Label-ы. Вполне вероятно, что это стандартные Windows контролы STATIC TEXT. И хуки никакие не нужны будут. 


Процентов 95, что стандартные лейбы, текст изменяется при работе программы, а как я понимаю static text - это неизменяемый текст. Да и смысла городить там что-то другое нет.

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

Это сообщение отредактировал(а) Prospekt - 24.12.2012, 09:02
PM MAIL   Вверх
Illusion Dolphin
Дата 24.12.2012, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 4
Всего: 63



Цитата

объясните словами, как это возможно впринципе.

Допустим имеется сторонняя программа, работающая от лица пользователя (ring3). 
Мы пишем программу, которая делает:
1) Запускает необходимую нам программу (для Vista, Win7, 8 - в режиме SUSPENDED, с XP тут проблемы)
2) С помощью CreateRemoteThread создаём в этой программе поток, который загружает нами написанную dll в адресное пространство программы
3) Эта длл должна просмотреть секцию импорта exe-файла и найти там выховы системных функций, в данном случае DrawTextA и DrawTextW
4) Адреса функций перезаписываются нашими функциями, которые будут принимать данные, обрабатывать и по желанию - запускать оригинальные функции
5) Профит

Трудность, с которой придётся столкнуться: нет ни одного толкового примера в интернете, работающего в XP-Win8, тем более с учётом x64, так что если надо универсальность - придётся попотеть.


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Prospekt
Дата 24.12.2012, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 30.5.2012

Репутация: нет
Всего: 1



Спасибо всем за помощь.
Вопрос снимается, прогулгил тему. Как бы так сказать, меня отталкивает даже не то, что это сложновато (для меня пока сложно), а некрасивость решения, менять чужую прогу хоть и на время, пусть и динамически - это не то.
Лучше уж действительно считывать изображение и собирать таким образом информацию, тем более что шрифт постоянен и известен, как и цвет. Плюс в большинстве случаев значением является число, проще будет по семплам разбирать картинку.
PM MAIL   Вверх
bems
Дата 24.12.2012, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 21
Всего: 88



Цитата(Illusion Dolphin @  24.12.2012,  09:49 Найти цитируемый пост)
Запускает необходимую нам программу (для Vista, Win7, 8 - в режиме SUSPENDED, с XP тут проблемы)
какие проблемы?



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Illusion Dolphin
Дата 24.12.2012, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 4
Всего: 63



Проблема только для XP, делается:
CreateProcess с флагом CREATE_SUSPENDED
CreateRemoteThread
WaitForSingleObject (созданный поток)
ResumeThread (оригинальный поток приложения).
В результате имеем что программа завершает работу :( Читал форумы, люди на это наталкиваются: 
http://stackoverflow.com/questions/9695370...-primary-thread
http://www.wasm.ru/forum/viewtopic.php?pid=308079 
http://www.gamedeception.net/threads/17964...s-what-the-fuck
http://bugtraq.ru/cgi-bin/forum.mcgi?type=...=6&m=143610
http://forum.sources.ru/index.php?showtopic=266627 тут тоже проблемы у людей

Кто-то пишет что в XP странный загрузчик и если запускать с CREATE_SUSPENDED, то exe ещё недоинициализирован, что исправили в поздних виндах. Но если есть идеи - я могу создать отдельную ветку для обсуждения. 


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0874 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.