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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.048 c
15-1263939469
Маша
2010-01-20 01:17
2010.08.27
Странная задачка


2-1272283178
Новичек
2010-04-26 15:59
2010.08.27
Как правильно дать на печать принтеру штрих код


2-1273738117
9x3bk
2010-05-13 12:08
2010.08.27
Работа с совмещением картинок


2-1271062611
vastani
2010-04-12 12:56
2010.08.27
BASM в DELPHI, проблема с Offset`ами


3-1243316202
Naruto
2009-05-26 09:36
2010.08.27
UPDATE в SQLite