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

Вниз

Как определить HWND кнопки расположенной на чужом окне   Найти похожие ветки 

 
Grademax   (2006-11-07 06:04) [0]

Предположим, существует форма созданая чужой программой, на форме находится кнопка (кнопка не активна)... Как получить Хендл этой кнопки (хендл кнопки постоянно меняется при каждом новом запуске формы)


procedure TForm1.Button1Click(Sender: TObject);
var hWindow, hButton: HWND;
begin
    // Находим Хендл чужого окна
    hWindow := FindWindow("Имя чужого окна", nil);
    // Находим Хендл кнопки на этом окне ????????
    hButton := ???????

    // Переводим фокус на чужое окно
    SetForegroundWindow(hWindow);
    // Делаем конопу активной (она была не активна)
    EnableWindow(hButton,true);
end;


 
Elen ©   (2006-11-07 07:52) [1]


> Grademax

FindWindowEX или EnumChildWindow... Что больше нравится...


 
Grademax   (2006-11-07 08:54) [2]

Если не сложно, как использовать эти функции? Дело в том, что я пробовал их использовать, но они либо находят не совсем то, что нужно (полученный хендл не соответствуют реальному хендлу кнопки), либо я (со своим "ошеломляющим" знанием английского :) делаю что-то не так. Скорее всего второе :)


 
Elen ©   (2006-11-07 09:04) [3]


> Grademax

Вообще то на этом форуме много можно литературы по этому найти, но раз программисты лентяи то так уж и быть :

Создай две формы и на Form2 в Button1 пропиши любой обработчик. Далее соответственно она должна появляться на экране вместе с первой формой в которой будет следующее :


procedure TForm1.Button1Click(Sender: TObject);
var h:hwnd;
begin
h:=FindWindow("TForm2","Form2");
h:=FindWindowEx(h,0,"TButton","Button1");
  SendMessage(h, WM_LBUTTONDOWN,MK_LBUTTON,5);
  SendMessage(h, WM_LBUTTONUP,MK_LBUTTON,5);
end;


Намек ясенЪЪЪ ;)


 
Grademax   (2006-11-07 09:31) [4]

Elen, большое СПАСИБО!
Приятно когда человек, может думать на шаг вперёд... :)

 SendMessage(h, WM_LBUTTONDOWN,MK_LBUTTON,5);
 SendMessage(h, WM_LBUTTONUP,MK_LBUTTON,5);


 
Elen ©   (2006-11-07 09:35) [5]


> Grademax

Пожалуйста. Приятно понимать друг друга без лишних слов и флуда. Все-таки совет "порыть в поиске на этом сайте" остается в силе


 
DVM ©   (2006-11-07 10:03) [6]


> Grademax

На всякий случай еще добавлю, что не всякая кнопка является окном и соответственно хэндла может не иметь.



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

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

Наверх





Память: 0.46 MB
Время: 0.044 c
15-1171987658
Vendict
2007-02-20 19:07
2007.03.18
Проблемы с ICQ


2-1172070527
<bbb>
2007-02-21 18:08
2007.03.18
ActiveX и Delphi


15-1171772413
homm
2007-02-18 07:20
2007.03.18
64-х битный ли???


15-1172354916
Kair+
2007-02-25 01:08
2007.03.18
MySQL + DateTime


15-1171608555
TohaNik
2007-02-16 09:49
2007.03.18
Перепись:)





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