![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TreeView в чужом приложении [D7, Win2k]
DelphiNew © (2004-07-08 13:31:00)Уважаемые мастера помогите с таким вопросом: в дочернем окне чужого приложения есть компонент TreeView мне нужно зная название элемента в этом компоненте выделить его. Как можно это сделать, какая информация мне для этого понадобится, есть ли компонеты для работы с чужими приложениями из своего.
P.S Приложение написано на Delphi
bar (2004-07-09 11:09:00) [1]По имени окна и его классу (класс TTreeView в делфи). Правда имена часто пустыми бывают толко классы. Узнать конкретные имена можно например с помощью Spy++ (Highlight). Зная имя ищешь с помощью
EnumChildWindows,FindWindowEx
Компонентов для работы с чужими приложениями встречал но не то что дебе нуно. "Работа" - слово большое убить чужое приложение тоже "работа".
Для выделения определенного элемента требуется Handle окна TreeView и идентификатор элемента .
Зная это можно использовать функции
TreeView_... из модуля CommCtrl
Смотри как это сделано в ComCtrls.
Например выделение элемента зная его ItemId
var
Item: TTVItem;
begin
with Item do
begin
mask := TVIF_STATE;
hItem := ItemId;
stateMask := TVIS_EXPANDED;
end;
TreeView_SetItem(Handle, Item);
end;
Как узнать ItemId? Это ВОПРОС.
DelphiNew (2004-07-09 08:39:00) [2]Ладно как найти окно понятно, а как найти этот компонент и выделить в нём определённый элемент, ведь SetFocus передаёт просто фокус компоненту
YuRock (2004-07-08 20:05:00) [3]Для этого есть много функций
Чтобы выделить: SetFocus;
Чтобы найти: FindWindowEx, GetWindow, EnumChildWindows...