Форум: "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