Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];

Вниз

Нажатие кнопки в чужом окне   Найти похожие ветки 

 
Грифон   (2002-06-18 01:22) [0]

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


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

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


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

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


 
rhf   (2002-06-18 02:06) [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-19 04:25) [4]

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


 
Andrew_k   (2002-06-19 16:06) [5]

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



Страницы: 1 вся ветка

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

Наверх




Память: 0.45 MB
Время: 0.008 c
4-71437
аак
2002-06-19 14:08
2002.08.22
Как скопировать папку со всем ее содержимым?


1-71077
Елена
2002-08-12 06:38
2002.08.22
Цвет фона для OleContainer


3-71035
Alex_Vas
2002-08-01 07:17
2002.08.22
ADO с паролем


1-71088
kronprince
2002-08-12 12:28
2002.08.22
TClientDataSet ->CommandText changes are not allowed


3-71005
Bogus
2002-07-31 16:28
2002.08.22
Обновление базы и ADO





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский