Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизКак нажать кнопку в чужом приложении. Найти похожие ветки
← →
JohnKorsh (2010-04-15 18:55) [0]Не подскажете ли, почему не работает код - надо нажать кнопку "Ok" в окне Advanced WiFi-Manager. Это единственная кнопка в этом окне. Окно находится (H1 не 0), а кнопка в нём - нет.
var
H1 : hwnd;
H2 : hwnd;
begin
H1 := FindWindow (nil, "Advanced WiFi-Manager");
if H1 <> 0 then
begin
H2 := FindWindowEx (H1, 0, "TBitBtn", "Ok");
if H2 <> 0 then // H2 всегда 0 - чего не так ищу?
begin
SendMessage(H2, BM_CLICK, 0, 0);
end;
end;
end;
← →
И. Павел © (2010-04-15 19:15) [1]А у кнопки класс точно TBitBtn? Может быть стоит пройтись по всем элементам окна и уточнить?
← →
Leonid Troyanovsky © (2010-04-15 19:22) [2]
> JohnKorsh (15.04.10 18:55)
> H2 := FindWindowEx (H1, 0, "TBitBtn", "Ok");
> if H2 <> 0 then // H2 всегда 0 - чего не так
> ищу?
У оного нет окна.
--
Regards, LVT.
← →
JohnKorsh (2010-04-16 07:58) [3]А как пройтись по всем элементам чужого окна?
← →
И. Павел © (2010-04-16 08:11) [4]> А как пройтись по всем элементам чужого окна?
EnumChildWindows, ChildWindowFromPoint, GetNextWindow.
Описание этих функций можно найти, например, тут: http://www.codenet.ru/progr/delphi/WinAPI/
← →
JohnKorsh (2010-04-16 08:30) [5]Спасибо.
← →
Leonid Troyanovsky © (2010-04-16 08:35) [6]
> JohnKorsh (16.04.10 07:58) [3]
> А как пройтись по всем элементам чужого окна?
Если элементы суть не окна, то, считай, что никак.
--
Regards, LVT.
← →
JohnKorsh (2010-04-16 09:24) [7]У меня заработал вот такой код, может, кому понадобится.
procedure TmAIN.Timer_AuxTimer(Sender: TObject);
{ Press of the key Ok on the Demo version of the WiFi Manager.}
var
H1 : hwnd;
begin
H1 := FindWindow (nil, "Advanced WiFi-Manager");
if H1 <> 0 then
begin
keybd_event(VK_RETURN, 0, 0, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
end;
end;
← →
Leonid Troyanovsky © (2010-04-16 09:35) [8]
> JohnKorsh (16.04.10 09:24) [7]
> У меня заработал вот такой код
Для того, чтобы он работал, "Advanced WiFi-Manager"
необходимо быть foreground, т.е. FindWindow,
в данном случае излишен.
А сделать его foreground по таймеру, в общем
случае, не получится.
--
Regards, LVT.
← →
JohnKorsh (2010-04-16 15:20) [9]Спасибо. Он действительно foreground - предупреждение о демо версии и 30 днях.
← →
Игорь Шевченко © (2010-04-16 16:17) [10]JohnKorsh (16.04.10 15:20) [9]
Может купить ? А то ведь забаню нахрен
← →
JohnKorsh (2010-04-20 08:20) [11]Извините, больше не буду. Да я бы купил, но у нас денег мало.
← →
Anatoly Podgoretsky © (2010-04-20 13:31) [12]> JohnKorsh (20.04.2010 08:20:11) [11]
Живите по средствам.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.064 c