Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.22;
Скачать: CL | DM;

Вниз

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

 
Грифон   (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 вся ветка

Текущий архив: 2002.08.22;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.007 c
3-70979
Explorer
2002-07-31 08:45
2002.08.22
DBLookupComboBox


3-70987
Bilfeld
2002-07-31 09:42
2002.08.22
SQL


14-71307
Igit
2002-07-26 10:03
2002.08.22
Анкетные данные


3-70955
Mihey
2002-08-03 11:46
2002.08.22
Помогите, как с помощью ADO взять поле из базы данных


3-70958
alexela
2002-08-03 21:10
2002.08.22
база DBase





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский