|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
|
bikovrm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2010 Репутация: нет Всего: нет |
Пожалуйста помогите!!! При получении данных из чужой программы, нужно прочитать данные из контейнера .NET - WindowsForms10.Window.8.app.0.378734a - таблицу dspTestSeqGrid. Уже перепробовал разнообразную реализацию, но пока не нашел решения этой проблемы.
У меня есть стороннее приложение WindowsForms10 (рис 1), и мне нужно получить доступ к данным в виде сетки этого приложения (прочитать) из моего приложения созданного в Delphi. При использовании программы Spy ++ она не видит этих элементов (рис 2). Но программа Ranorex Spy видит все необходимые поля и четает данные (рис 3 и 4). При рекурсивном переборе всех елементов с использованием FindWindow, FindWindowEx, EnumChildWindows и EnumChildFunc дает мне доступ только к главному окну, но не видит содержимое контейнера. h := FindWindow(NIL,'HK1400 EUI/EUP'); if h <> 0 then begin EnumChildWindows(h, @EnumChildFunc, 0); ... function EnumChildFunc(Child: HWND; lParam : Longint) : BOOL; stdcall; var szClass : array[0..63] of Char; s : array[Byte] of Char; begin GetClassName(Child, szClass, SizeOf(szClass)); ... End; Так же на сайте разработчика программы Ranorex Spy нашол код (для их среды програмирования) для получения доступа к таблице: https://www.ranorex.com/blog/element-based-...istcs-controls/
Пожалуйста, помогите получить доступ к таблице (содержащему данные сетки) и навигации по ней. Желательно с реализацией в Delphi. |
|||
|
||||
bems |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
а софтину где скачать? и запустится ли она без железки?
-------------------- Обижено школьников: 8 |
|||
|
||||
bikovrm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2010 Репутация: нет Всего: нет |
без железа запустится, а скачать можно : https://drive.google.com/open?id=1ykLp9maQm...oEBhVtu5tWSEldV
использование в доке |
|||
|
||||
bems |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
вот чтение грида, кнопки я никакие не нажимаю, так что для проверки кода форму сначала нужно привести в правильное состояние вручную
-------------------- Обижено школьников: 8 |
|||
|
||||
bikovrm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2010 Репутация: нет Всего: нет |
это в RAD Studio? Какую версию вы использовали?
|
|||
|
||||
bems |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
10.2
-------------------- Обижено школьников: 8 |
|||
|
||||
bikovrm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2010 Репутация: нет Всего: нет |
Спасибо. Переварил. Очень помогло.
|
|||
|
||||
bikovrm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2010 Репутация: нет Всего: нет |
А с диаграммой разобраться не поможете? Нужно прочитать данные из первой колонки.
Тут вообще не читается поле с данными, они являются частью диаграммы и в свойствах не описываются. И описание компонента TFlowDiagram вообще в нэте нет. На данный момент если не получится, думаю прейдётся искать в памяти и читать из неё. программа, обновление |
|||
|
||||
bems |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
я не вижу тут лёгкого способа вычитать значение. можно было бы попробовать получить поинтер на компонент из HWND диаграмы и прочитать значение из компонента, но тут две проблемы:
1. если при обновлении прогриаммы поменяется структура компонента в памяти, то всё поломается 2. если при обновлении программы изменится версия делфей/билдера или целевая платформа билда, то всё снова поломается -------------------- Обижено школьников: 8 |
|||
|
||||
bikovrm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2010 Репутация: нет Всего: нет |
если поломается при обновлении, не чего страшного, можно будет поправить, главное как туда залезть и прочитать значение из компонента. И обновление не критично можно на него и забить.
обновление в графике происходит с железа, но.. На закладке "расход ctrl+f4" можно самому в ручную менять значение в ячейке "см3:" |
|||
|
||||
bems |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
ну ок, попробую
-------------------- Обижено школьников: 8 |
|||
|
||||
bems |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
как-то так. показывает значения для первой попавшейся диаграммы. это как раз та, которую можно редактировать вручную
-------------------- Обижено школьников: 8 |
|||
|
||||
bikovrm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2010 Репутация: нет Всего: нет |
Спасибо, вы просто ШАМАН.
Я как раз закончил с чтением значения из памяти, но это гораздо лучше. Щас буду разбираться. |
|||
|
||||
bems |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
так и это чтение из памяти. если хочется избавиться от жестко забитого смещения поля в объекте, то можешь попытаться читать InitTable объекта в поисках динамического массива даблов. впрочем он наверное там не один, и номер массива тогда придется захардкодить
-------------------- Обижено школьников: 8 |
|||
|
||||
bems |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
вот еще более короткий вариант не требующий CreateRemoteThread. при сокращении пала смертью храбрых проверка на разрядность целевого процесса, ну и черт с ней
-------------------- Обижено школьников: 8 |
|||
|
||||
Правила форума "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. |