Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Вниз

WM_LBUTTONDOWN и WM_LBUTTONUP   Найти похожие ветки 

 
Сережа550 ©   (2004-04-19 15:35) [0]

Уважаемые знатоки, есть такой код:
var
Win1:HWND;
begin
Win1:=Button1.Handle;
PostMessage(Win1, WM_LBUTTONDOWN, 0, MAKELPARAM(0,0));
PostMessage(Win1, WM_LBUTTONUP, 0, MAKELPARAM(0,0));
end;


Все прекрасно работает, кнопка нажимается...

Но следующий почти идентичный код уже не работает:
var
Win1:HWND;
begin
Win1:=WebBrowser1.Handle;
PostMessage(Win1, WM_LBUTTONDOWN, 0, MAKELPARAM(0,0));
PostMessage(Win1, WM_LBUTTONUP, 0, MAKELPARAM(0,0));
end;


В WebBrowser загружена страница, где именно в этих координатах висит баннер. Никакого клика не происходит. Интересно почему? Хотелось бы понять, чем WebBrowser не подходит данному методу...


 
RoadWay   (2004-05-05 15:58) [1]

В данном случае лучше использовать интерфейс IHTMLElementCollection который содержит коллекцию элементов в текущем документе WebBrowser1
Пример ниже перебирает все элементы коллекции формы и делает свое тайное дело посылая в метод субмит формы имя и пароль пользователя

function TForm1.SubmitForm : Boolean;
var
 iDoc: IHtmlDocument2;
 i: integer;
 ov: OleVariant;
 iDisp: IDispatch;
 iColl: IHTMLElementCollection;
 InputTxt : HTMLInputTextElement;
 SubmitImg : HTMLInputImage;
 OkValue : Byte;
begin
 Result := False;
 OkValue := 0;
 WebBrowser1.ControlInterface.Document.QueryInterface(IHtmlDocument2, iDoc);
 if not Assigned(iDoc) then
   Exit;
 ov := "INPUT";
 iDisp := iDoc.all.tags(ov);
 if Assigned(IDisp) then begin
   IDisp.QueryInterface(IHTMLElementCollection, iColl);
   if Assigned(iColl) then
     for i := 1 to iColl.Get_length do begin
       iDisp := iColl.item(pred(i), 0);
       iDisp.QueryInterface(HTMLInputTextElement, InputTxt);
       if Assigned(InputTxt) then begin
         if InputTxt.Name = "username" then begin
           InputTxt.value := Usr;
           Inc(OkValue);
           Form1.Caption := Form1.Caption+" Usr="+InputTxt.value;
           WebBrowser1.Update;
         end
         else
         if InputTxt.Name = "passwd" then begin
           InputTxt.focus;
           InputTxt.click;
           InputTxt.value := Psw;
           InputTxt.click;
           Inc(OkValue);
           Form1.Caption := Form1.Caption+" Psw="+InputTxt.value;
           WebBrowser1.Update;
         end;
       end;
       iDisp.QueryInterface(HTMLInputImage, SubmitImg);
       if Assigned(SubmitImg) then
         if SubmitImg.name="" then begin
           SubmitImg.focus;
           SubmitImg.click;
           WebBrowser1.Update;
           Inc(OkValue);
         end;
     end;
 end;
 Update;
 Result := OkValue=3;
 if Result then
   AddLog("USERs Autentifikations sended");
end;



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.036 c
1-1085496946
init13
2004-05-25 18:55
2004.06.06
StringGrid


1-1085694297
Gestapo
2004-05-28 01:44
2004.06.06
Как вставить метафайл из буфера обмена в TImage?


1-1085396068
Mehriddin
2004-05-24 14:54
2004.06.06
Графика в delphi


4-1083512654
Tuman
2004-05-02 19:44
2004.06.06
Как назначить событие кнопке?


1-1085364117
Jedu
2004-05-24 06:01
2004.06.06
Скроллинг на главной форме...





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