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




Вниз

Проблема с handle s у дочерних элементов 


Romul   (2002-02-21 15:34) [0]

Люди, есть такая проблема, я получаю хэндл чужого окна (я его действительно получаю так как могу например эту прогу закрыть через SendMessage), так вот дальше я пытаюсь получить хоть какой-нибудь хэндл дочернего окна, например кнопки, с помощью следующей нехитрой строчки
Hndl2:=FindWindowEx(Hndl, 0, "TButton", "Запись");
и в резалте получаю 0. Странно то, что точно таким же макаром я получаю хэндл кнопки, но в другой программе просто меняя название Caption окна в функции FindWindow. Почему же я не могу получить хендл в первом случае?
Вот код которым я все это проделываю:


procedure TForm1.Button3Click(Sender: TObject);
var
Hndl:Thandle;
Hndl2:THandle;
begin
Hndl:=FindWindow(nil, "Заголовок проги");

Hndl2:=FindWindowEx(Hndl, 0, "TButton", "Запись");
Edit2.Text:=IntToStr(Hndl)+#9+IntToStr(Hndl2);
//SendMessage(Hndl, wm_close, 0, 0);
end



Grim Rider   (2002-02-21 15:46) [1]

А тяжело прочитать предыдущее сообщение?
http://delphi.mastak.com/cgi-bin/forum.pl?look=1&id=1014277912&n=5



Romul   (2002-02-21 16:23) [2]

Слушай, я же спрашиваю почему только при изменении заголовка приведенный выше код перестает "доставать" хэндлы дочерних элементов, хотя тот же самый код "достает" их у другой программы? Как такое может быть?



Юрий Зотов   (2002-02-21 16:50) [3]

Такое может быть, например, если:

- программа написана не на Delphi (точнее, окно кнопки имеет класс не TButton).

- это рисованная кнопка, а не окно.



Dimk   (2002-02-21 16:51) [4]

А у тебя кнопка "запись" не находится на какой нибудь панели?
Помоему у панели свой хендл есть и если это так - то кнопка есть cheld панели.



Romul   (2002-02-21 17:08) [5]

2 Юрий Зотов
Прога на Дэльфях написана, и плюс через WinSight этот класс как TButton виден.
2 Dimk
Да вроде через тот же WinSight никаких панелей не видно

Может в этой проге какая-то блокировка есть? Возможно это?



Dimaond Cat   (2002-02-22 01:28) [6]

ну попробуй через GetWindow(hwnd1,GW_Child) в цикле перебрать все дочерние окна или через EnumWindow




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




Наверх





Память: 0.73 MB
Время: 0.025 c
1-94367           Bodia                 2002-04-15 12:18  2002.04.29  
Какой компонент самый лутший для роботы с FTP?


3-94286           Вик                   2002-04-08 10:56  2002.04.29  
ZeosDBO компоненты к Delphi6


14-94538          VATERMAN              2002-03-20 19:54  2002.04.29  
АРI


7-94596           ураган                2002-02-04 22:38  2002.04.29  
помогите написать дрова


1-94359           NS                    2002-04-17 11:57  2002.04.29  
Нужно в RUN-Time создавать экземпляры некоторых объектов (для при