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

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

Нажатие кнопки в чужом окне [D5, WinME]


Грифон ©   (2002-06-18 01:22:00) 

Скажите, как можно нажать кнопку в чужом окне, т.е. моя прога находит окно с Caption = "proga", в этом окне есть кнопка с caption = "Ok". Так вот нужно сделать так, чтобы происходило нажатие этой кнопки из моей проги. Подскажите какое сообщение нужно послать тому окну.


Andrew_k   (2002-06-19 16:06:00) [1]

Люди, а если перечислять все окна, то как найти кнопку, т.е. использовать FindWindowEx, а кнопок две, то как найти ту, что надо?


Грифон   (2002-06-19 04:25:00) [2]

Спасибо все работает. Только в строке
h:=findWindow(pchar("заголовок"),nil);
параметры нужно местами поменять.


rhf   (2002-06-18 02:06:00) [3]

блин....ну вы хоть малость усилий приложите...для чего голова дана........

если кнопка точно есть и она прямо на главном окне да еще и надпись на ней уникальна среди остальных элементов, то так

const allDone:boolean= FALSE;
var
h:HWND;
buf:array[0..255] of char;

h:=findWindow(pchar("заголовок"),nil);
h:=getWindow(h,GW_CHILD);
while (h<>0)or (not allDone) do
begin
getWindowText(h,buf,sizeOf(buf));
if string(buf)="текст на кнопке" then
begin
sendMessage(h,BM_CLICK,0,0);
allDone:=TRUE;
end;
h:=getWindow(h,GW_HWNDNEXT)
end;

иначе надо смотреть класс окна с хендлом (getClassName) и сравнивать с классом твоей кнопки. Ну а если она может и еще в каком-то контейнере быть, то либо выясни точно где она, либо просмотри все дочернии окна ну и так далее...

p.s. за синтаксис не отвечаю......не проверял


Грифон   (2002-06-18 01:36:00) [4]

А как найти её?


rhf   (2002-06-18 01:35:00) [5]

теперь найди эту кнопку .... ее handle и пошли BM_CLICK


Наверх

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