![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| chiffa |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 734 Регистрация: 11.11.2003 Репутация: нет Всего: -1 |
Всем добрый день. Стоит задача получить информацию из определенных полей сторонней программы. Столкнулся с двумя основными проблемами.
1. Spy++ исследовал программу, получить такую структуру:
Перебираю элементы:
и основная проблема: как обратиться к третьему элементу TShape т.к. именно в нем находится нужный мне TRichEdit. И 2я непонятка. Программа находит и определяем хендлы, только когда приложение активно (то есть моя программка находится над ним), если же приложение в котором ведется поиск не активно или свернуто, почему то ничего не находит... Буду признателен за подсказки и помощь! Заранее всем спасибо! Это сообщение отредактировал(а) chiffa - 4.7.2011, 22:09 |
||||
|
|||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Что за программа?
|
|||
|
||||
| chiffa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 734 Регистрация: 11.11.2003 Репутация: нет Всего: -1 |
Самописная (не мною)...
|
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Пощупать где можно взять?
|
|||
|
||||
| chiffa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 734 Регистрация: 11.11.2003 Репутация: нет Всего: -1 |
к сожалению это нереально :( а универсального способа пройтись по всем компонентам нельзя?...
|
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Ну чем то вкладки отличаются?
|
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: нет Всего: 20 |
А при чём тут вкладки? Автору нужно на "какой-то вкладке" обнаружить некий "третий элемент TShape", который как автору показывает Spy++, является Parent'ом для какого-то "элемента TRichEdit". Вкладки он находит, судя по всему. Но вот "третий элемент" ему найти не удаётся. Не Брюс он Уиллис! -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Ну так сначала надо вкладку определить или я не прав? |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: нет Всего: 20 |
Прав. Конечно прав. Только автору это не поможет. ((( Даже если он эту вкладку найдёт. Чем-то всё это мне напоминает знаменитое "угадал все буквы, не смог угадать слово". -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
Это сообщение отредактировал(а) bems - 5.7.2011, 09:46 -------------------- Обижено школьников: 8 |
|||
|
||||
| chiffa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 734 Регистрация: 11.11.2003 Репутация: нет Всего: -1 |
Вкладки то я как раз нахожу, нормально, и первый TShape нахожу, а вот как обратится к третьему TShape - не знаю...
Добавлено через 5 минут и 43 секунды Сорри... Я вообщем не путаю... инет просто лагает дико и стили посьезжали крайне трудно ориентироваться на странице... еще раз сорри... |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Вкладку определил, ок. В каждом шейпе есть РичЕдит? Если нет - то перебери все и как только встретишь один с РичЕдитом, его и бери.
Это сообщение отредактировал(а) Keeper89 - 5.7.2011, 10:24 |
|||
|
||||
| chiffa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 734 Регистрация: 11.11.2003 Репутация: нет Всего: -1 |
ЭТо то я понимаю.. Но как их перебрать?... можно пример кода?
|
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Через EnumWindows.
Где-то в этих темах я приводил пример: http://forum.vingrad.ru/forum/topic-265526...ndow/index.html http://forum.vingrad.ru/forum/topic-261954...ndow/index.html |
|||
|
||||
| chiffa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 734 Регистрация: 11.11.2003 Репутация: нет Всего: -1 |
Спасибо за ссылки, но что то я там не нашел там примеров с EnumWindows... Если не затруднит можешь скопировать сюда?....
|
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Пройдись еще раз, должны быть
|
|||
|
||||
| Dik0n |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 11.5.2011 Репутация: 1 Всего: 10 |
Народ Вы о чем, TShape это графический элемент он не имеет Handle и на нем нельзя размещять компоненты и EnumWindows тут не поможет.
искать надо примерно так, хватит и одной переменной
Это сообщение отредактировал(а) Dik0n - 5.7.2011, 14:20 --------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой |
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 29 Всего: 191 |
Dik0n, раз у ТС речь идёт о Spy++, то это получается нестандартный TShape с хэндлом.
По теме:
|
|||
|
||||
| Dik0n |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 11.5.2011 Репутация: 1 Всего: 10 |
У этого компонента нет Handle вообще!!! смотрим, наследуется от TGraphicControl
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой |
||||||
|
|||||||
| chiffa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 734 Регистрация: 11.11.2003 Репутация: нет Всего: -1 |
Спасибо всем! То что нужно! А насчет того что находит только когда окно активно?... Какие могут быть варианты?...
|
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Dik0n, Rrader сказал правильно, значит он не обычный
|
|||
|
||||
| Dik0n |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 11.5.2011 Репутация: 1 Всего: 10 |
Keeper89, Вы не поняли, у chiffa уже все прекрасно работает, ньюанс в том, если окно свернуто, то функции по поиску окна не работают...
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой |
|||
|
||||
| chiffa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 734 Регистрация: 11.11.2003 Репутация: нет Всего: -1 |
да именно так... непонятно только почему....
|
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 29 Всего: 191 |
Какой хэндл не находится, когда программа свернута?
|
|||
|
||||
| chiffa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 734 Регистрация: 11.11.2003 Репутация: нет Всего: -1 |
TPageControl....
|
|||
|
||||
| chiffa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 734 Регистрация: 11.11.2003 Репутация: нет Всего: -1 |
Ошибка найдена... формы с заглавным именем класса TfrmMain запущено несколько, поэтому оно и не подхватывает ту которая активна, если не активны все, то хрен знает по какому принципу оно определяет первую форму...
Отсюда вопрос: как задать именно нужную мне окно (кроме как прописать тайтл)?... |
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 29 Всего: 191 |
Тогда скажи нам, есть ли у нужной формы какие-нибудь уникальные признаки?
|
|||
|
||||
| chiffa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 734 Регистрация: 11.11.2003 Репутация: нет Всего: -1 |
А что значит уникальные признаки?Я всегда считал что уникальный признак это Имя класса и заголовок, как показала практика я ошибался...
Перебирать все компоненты со всех форм и сравнивать с заранее заданной структурой - иррационально... |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 8 Всего: 76 |
Ну почему иррационально(чего в жизни иногда не зделаешь ради победы -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |