Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.061 c
15-1265019220
12
2010-02-01 13:13
2010.08.27
О помощи. Забавно.


15-1270904059
xdragon
2010-04-10 16:54
2010.08.27
Тип void в Delphi.


2-1271936513
RWolf
2010-04-22 15:41
2010.08.27
Сравнение переменных процедурного типа


2-1274965464
integer
2010-05-27 17:04
2010.08.27
подключитсо к nokia через usb и получить текст всех СМС


3-1238243754
Ivan8511
2009-03-28 15:35
2010.08.27
Индексация даты в обратном порядке





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