Главная страница
    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.041 c
4-1077743027
Dr.Null
2004-02-26 00:03
2004.05.02
Проблемы с WM_SIZE+SetWindowPos


6-1078329670
TGrey
2004-03-03 19:01
2004.05.02
статистика Dial Up соединения


14-1081242454
serge35
2004-04-06 13:07
2004.05.02
Наконец-то азиаты решили написать операционку


14-1080920927
Lexer
2004-04-02 19:48
2004.05.02
Крым, море, горы


1-1082036673
Ruslan
2004-04-15 17:44
2004.05.02
Как в ListView закрасить строки разным цветом?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский