![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нажатие кнопки в чужом окне [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