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

Вниз

Как определить 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.036 c
11-1150512041
parovoZZ
2006-06-17 06:40
2007.03.18
demomodalvcl2koldll - вовсе и не модал


15-1172120397
Loginov Dmitry
2007-02-22 07:59
2007.03.18
Утечка памяти при работе с потоками


3-1166546496
KIR
2006-12-19 19:41
2007.03.18
FastReport 2.54 При печате печатает "кракозябликами"


1-1169717444
Альф
2007-01-25 12:30
2007.03.18
Обработка исключений в TThread


1-1169678048
DevilDevil
2007-01-25 01:34
2007.03.18
Алгоритм сравнения файлов.