Поиск:

Ответ в темуСоздание новой темы Создание опроса
> чтение из TDBGrid, чтение из компонента 
:(
    Опции темы
COPM61
Дата 3.7.2009, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уважаемые коллеги! Подскажите, как мне наиболее корректно прокрутить одну комбинацию. Надо из приложения MFC считать содержимое элемента окна другого приложения (написанного на Delphi), а именно - компонента TDBGrid. Окно приложения-родителя нахожу легко (CWnd* FindWindow() ), потом получаю список детей, ищу дочернее окошко, в котором еще раз дочернее и так далее до необходимой глубины. Наконец, найдя тот самый TDBGrid (имея на него CWnd*), вижу его размер, свойства, но не могу прочитать его содержимое (ох уж эти ДУРАЦКИЕ компоненты от делфи (да и приложения! Olly DBG вообще мне отказался одно приложение скомпиллированное в Delphi понимать как PE-файл, но это так, к слову....)).

Пытался посылать ему SendMessage, работать с ним как с CListBox, CListControl, CComboBox и так далее, пытался найти в нём еще дочерние окна (ноль эмоций), короче, что я только не пытался сделать, не могу прочитать содержимое этого компонента.

Пробовал даже использовать существующие средства автоматизации (лучшее, на мой взгляд - AutoIT v.3)

Подскажите, как мне обойти эту ситуацию. А то скриншот с экрана распознавать неохота.
PM MAIL   Вверх
Earnest
Дата 3.7.2009, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Скорее всего, никак. Сообщения для этого окна, видимо, не определены, и никакое оно не лист-вью и не лист-бокс. А данные держит у себя в памяти, так что из другого процесса не подберешься (если нет закладок каких-то). И Дельфи тут ни при чем - многие нестандартные компоненты, которые не COM, так устроены - вещь в себе - и никакиго сообщения с другими приложениями.


--------------------
...
PM   Вверх
COPM61
Дата 6.7.2009, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



как же добраться до этих данных, которые отрисовывает TDBGrid? как прочитать у TDBGrid кто источник данных? это же можно сделать!? как?
PM MAIL   Вверх
Earnest
Дата 7.7.2009, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Что значит "можно"? Совершенно не факт. Вариант 1. Это предусмотрено разработчиками компонента. Тогда рой документацию и ищи интерфейсы. Вариант 2. Не предусмотрено. Ройся в асемблерном коде, анализируй устройство этого объекта - где какие данные, указатели и прочая...


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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