Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

поиск окна и родительских окон


Rasputin ©   (2008-04-19 22:56:00) 

еще немного и крыша улетит )))
что я делаю не так??? Нужно найти окно, в котором дочерн. окна!
для эксперимента создал новый проэкт бросил на него пару кнопок, пару мемо и пару списков. Ниже код который должен работать но почему-то не работает!
Находится только окно формы, а дальше полная эрунда вместо положеного. Что не так??? Как искать в родительском окне???

 
h:=GetForegroundWindow;
TxtLength:=SendMessage(h,WM_GETTEXTLENGTH, 0, 0);
SetLength(buffer,txtLength-1);
sendmessage(h, wm_gettext, txtlength, longint(@buffer[1]));
Memo1.Lines.Append(buffer);

h:=GetWindow(h, GW_CHILD);
TxtLength:=SendMessage(h,WM_GETTEXTLENGTH, 0, 0);
SetLength(buffer,txtLength+1);
sendmessage(h, wm_gettext, txtlength, longint(@buffer[1]));
Memo2.Lines.Append(buffer);

while (h<>0) do begin
h:=GetNextWindow(h,GW_HWNDNEXT);
TxtLength:=SendMessage(h,WM_GETTEXTLENGTH, 0, 0);
SetLength(buffer,txtLength+1);
sendmessage(h, wm_gettext, txtlength, longint(@buffer[1]));
Memo2.Lines.Append(buffer);
end;


Rasputin   (2008-04-20 13:51:00) [1]


> Германн ©   (20.04.08 01:41) [3]
> Не уверен, но почему sendmessage(h, wm_gettext, txtlength,
> longint(@buffer[1]));
> А не sendmessage(h, wm_gettext, txtlength+1, longint(@buffer[1]))?

точно, так и есть, и какой я после этого л...р )


Германн   (2008-04-20 01:41:00) [2]


> Rasputin   (20.04.08 01:01) [2]

Не уверен, но почему sendmessage(h, wm_gettext, txtlength, longint(@buffer[1]));
А не sendmessage(h, wm_gettext, txtlength+1, longint(@buffer[1])) ?


Rasputin   (2008-04-20 01:01:00) [3]


> easy ©   (19.04.08 23:42) [1]
>
> http://dfc.com.ru/?sid=2&id=7&itemid=9

за ссылку спасибо, неплохой пример!
но все-таки что я делал не так! вот даже, этот кусок кода должен работать с виду 100%. Нажимаеш кнопку и получаеш заголовок окна!
а почему-то вместо Form1упорно возвращается Form

h:=GetForegroundWindow;
TxtLength:=SendMessage(h,WM_GETTEXTLENGTH, 0, 0);
SetLength(buffer,txtLength+1);
sendmessage(h, wm_gettext, txtlength, longint(@buffer[1]));
Memo1.Lines.Append(buffer);


easy   (2008-04-19 23:42:00) [4]

http://dfc.com.ru/?sid=2&id=7&itemid=9


Наверх

Титульная страница Поиск, карта сайта Написать письмо