Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Доступ к компонентам другого приложения   Найти похожие ветки 

 
Alexey   (2004-03-05 10:51) [0]

Как считать данные из компонента Tree  View другого приложения


 
Cobalt ©   (2004-03-05 11:03) [1]

Может, если прога скомпилирована с BPL, будет проще.
А если нет - то придётся заморачиваться со свойсвами окон (GetWindowExtra, кажется...)
Проще считывать инфу не из компонентов, а из окон


 
Digitman ©   (2004-03-05 11:19) [2]


> Alexey   (05.03.04 10:51)  


именно из компонента TTreeView ? или из TreeView как общесистемного Win-контрола ? разные же вещи..


 
Alexey   (2004-03-05 13:26) [3]

Вообще на форме нахожу следующие компоненты:
CAPTION: no name
CLASS: TREELISTCONTROLCLASS
___________________________
CAPTION: Tree
CLASS: Afx:400000:8:10011:1100060:0

Пробовал считывать ListView_GetItemCount(Handle)
и TreeView_GetCount(Handle) для каждого дает ноль.
Есть мысли?


 
MBo ©   (2004-03-05 13:31) [4]

Найди в кладовке пример доступа к ListView чужого процесса, и делай по аналогии, а также читай Рихтера о внедрении в другой процесс.
Причины: большинство сообщений, достающих информацию об этих контролах, требуют передачи адреса структуры данных, а адрес этот - в чужом адресном пространстве.


 
Alexey   (2004-03-05 13:35) [5]

У компонента TREELISTCONTROLCLASS есть в Child-ах SysHeader32
Может это чем-то поможет.
________________________________________
А насчет данных, пока нечего читать, но спасибо за совет, обязательно поищу.


 
Digitman ©   (2004-03-05 13:38) [6]


> нахожу следующие компоненты


судя по тому, что ты находишь, никакого отношения к компонентам делфи это не имеет

равно как и Делфи-формами там никакими не пахнет

иными словами, целевое приложение не является Делфи-приложением. а это значит, что ни о каких "формах" и "компонентах" (в привычном для Делфи-программинга смысле) речи быть не может

касаемо же "пробовал считывать" мысль одна - хэндл целевого контрола (не компонента !!!) тобой определен неверно


 
Digitman ©   (2004-03-05 13:41) [7]

да, MBo прав : даже если хэндл контрола определен верно, упомянутый тобой код д.б. выполнен в ВАП целевого (а не твоего собственного) процесса


 
Alexey   (2004-03-05 13:43) [8]

Пробовал:
TreeView_GetCount("Handle программы написанной мной на Delphi содержащий компонент TTreeView") всё Ок.
Так что думаю Handle нахожу правильно. Не ясен тип контрола к которому обращаюсь.


 
Alexey   (2004-03-05 13:50) [9]

В Windows SDK сказано:

UINT TreeView_GetCount(hwnd);
Parameters hwnd Handle to the tree-view control.
Return Values
Returns the count of items.

Может что не так, подскажите?


 
MBo ©   (2004-03-05 13:54) [10]

TreeView_GetCount (вызывающий TVM_GETCOUNT) вернет число узлов, поскольку для этого достаточно передать непосредственное значение в параметре сообщения, однако лишь некоторые свойства контрола можно так получить (cм. [4])


 
Digitman ©   (2004-03-05 13:56) [11]


> Alexey   (05.03.04 13:50) [9]


ты в состоянии понять, что этот код  д.б. выполнен в ВАП целевого, а не твоего собственного процесса ?


 
Digitman ©   (2004-03-05 14:04) [12]


> Alexey   (05.03.04 13:50) [9]


то что ты получаешь 0 как рез-т вызова упомянутых макросов, говорит только об одном - хэндл целевого окна ты определил неверно

но даже если ты получишь не 0, прочитать данные об узлах непосредственно из своего процесса ты не сможешь - соотв-е макросы должны быть вызваны в ВАП того процесса, который  создал и владеет интересующим тебя контролом


 
Alexey   (2004-03-05 14:04) [13]

To MBo:
Вот я и хочу для начала считать правильно хотя-бы число узлов.

To Digitman:
Спасибо. Я понял, что в дальнейшем чтобы получить структуру HTREEITEM (или другую если это не TreeView) мне придется внедрятся в адресное пространство целевого процесса, но пока эта задача еще не стоит.



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
6-1078856220
incm
2004-03-09 21:17
2004.05.02
TIdHTTP - как закачать определенное кол-во байтов с нужного места


3-1081229415
Filat
2004-04-06 09:30
2004.05.02
Через что лучше связать Delphi с MS SQL 7/2000?


14-1081793805
ЧупаЧупс
2004-04-12 22:16
2004.05.02
Аж страшно становится -- 11 число - число неудач?


7-1078924574
Seldon
2004-03-10 16:16
2004.05.02
Какие стили должно иметь окно, для отображения его кнопки окна на


14-1081231463
panov
2004-04-06 10:04
2004.05.02
Щенок дворской породы.