![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как перебрать все элементы в окне?
Хинт © (2005-07-06 12:20:00)Необходимо найти элемент управления (RichEdit20W). Для этого надо перебрать все элементы в окне. Может кто-нибудь дать готовый пример, использующий GetWindow (GW_CHILD, GW_HWNDNEXT)?
begin...end (2005-07-06 13:06:00) [1]> Хинт © (06.07.05 12:46) [7]
А что, GetWindowText не работает?
Хинт (2005-07-06 12:57:00) [2]Через буфер обмена не хотелось бы... А программа написана не на Delphi =( Может есть какой-нибудь вариант с использованием WinApi?
Чапаев (2005-07-06 12:48:00) [3]Выделить всё, а затем скопировать в буфер обмена? Если вторая программа делфовая, то можно и через FindControl() извратиться.
Хинт (2005-07-06 12:46:00) [4]Спасибо. С этим разобрался. Последний вопрос: как получить текст из RichEdit20W?
Чапаев (2005-07-06 12:45:00) [5]Тьфу, то есть FindWindow(nil,'TForm1'), а затем FindWindowEx()
Чапаев (2005-07-06 12:43:00) [6]FindWindow(nil,'TMemo'), а затем FindWindowEx().
Игорь Шевченко (2005-07-06 12:40:00) [7]EnumChildWindows ?
Хинт (2005-07-06 12:32:00) [8]Сделал так:
procedure FindMemo(wnd:HWND);
var
ClassName : array[0..255] of char;
begin
while Wnd<>0 do
begin
FindMemo(GetWindow(Wnd, GW_CHILD));
GetClassName(wnd, ClassName, 255);
if StrPas(ClassName)='RichEdit20W' then
begin
Application.MessageBox('Элемент найден','Готово',MB_OK);
end;
WND:=GetWindow(WND, GW_HWNDNEXT);
end;
end;
Но почему-то находит не все =(
Хинт (2005-07-06 12:29:00) [9]FindWindowEx [Now Supported on Windows NT]
Чапаев (2005-07-06 12:27:00) [10]A FindWindowEx() не подойдёт?