Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Получение данных из TDBGrid - C++ WinAPI |
Автор: Boltina 27.12.2016, 09:12 |
Есть стороннее приложение в нём в TDBGrid выводятся данные. Могу ли я с помощью winapi своим приложение получить эти данные? Сейчас получилось получить окно этого приложения. И посылать некоторые сообщения самому DBGrid'у. Куда дальше копать, есть ли возможность получить данные? Какие варианты есть? |
Автор: миг 27.12.2016, 10:25 |
Возможно существует ***.dll , которая может предоставить доступ к данным. |
Автор: GremlinProg 27.12.2016, 10:53 |
TDBGrid - есть в Delphi такой компонент. Если речь о нем, то будет довольно муторно получить его данные. Здесь нужен тулсет для работы с объектами Delphi в памяти. Проще наверное будет использовать не C++, а Delphi, причем, желательно той же версии, на которой написано исходное приложение. |
Автор: Boltina 27.12.2016, 12:29 | ||
Очень похоже на Delphi. Возможность использовать Delphi вместо С++ есть, с версией проблема но подобрать нужную можно. Встает вопрос, а в delphi есть возможность получить доступ к TDBGrid сторонней программы? В какую сторону там смотреть? Или использовать другой случай - влезать в память относящейся к этой программе? |
Автор: миг 27.12.2016, 13:59 |
А не проще определить какие dll файлы были установлены с программой? Часто разработчики зашивают в dll специальные Api функции позволяющие сторонней программе работать с данными их программы. |
Автор: GremlinProg 27.12.2016, 15:06 | ||
конечно проще, если есть API для приложения, лучше воспользоваться им и не заморачиваться |
Автор: Boltina 27.12.2016, 16:27 | ||||||
обязательно посмотрю, если найду наверняка появятся вопросы: о результате напишу Добавлено через 3 минуты и 17 секунд
TDBGrid, да кажется данные отдельно из компонента datasource или подобного. А как понять что нет возможности работать именно с компонентом и с его datasource (при его наличии) |
Автор: GremlinProg 28.12.2016, 07:37 | ||
У меня нет исходников под рукой. Посмотрите в CreateParams, какой класс окна создается для контрола в TDBGrid или его предках (в TMemo, например - это класс EDIT) Если ни какого, то смотрите, какие сообщения обрабатывает этот компонент. Вполне возможно, что можно получить необходимую Вам информацию через них (это API компонента). В Delphi хорошо развито общение между компонентами через такие внутренние сообщения. И только если ни чего из этого не помогает - можно пробовать получить данные. Для начала - в одном адресном пространстве (в одном процессе). |