Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.039 c
8-1075984374
m-AAA-d
2004-02-05 15:32
2004.05.02
DelphiX D3DRM


1-1081437285
Aleksandr
2004-04-08 19:14
2004.05.02
Можно сделать перехват клавиш в проге с активным MessageBox?


4-1078415133
GrayFace
2004-03-04 18:45
2004.05.02
Как сделать приложение, изменяющее разрешение?


4-1078199427
Lefan
2004-03-02 06:50
2004.05.02
Взять HTML из чужого приложения...


1-1081933960
LameFox
2004-04-14 13:12
2004.05.02
Не пашет Image1.Picture.LoadFromFile(...);





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский