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

Вниз

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 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
14-1084730549
Rouse_
2004-05-16 22:02
2004.06.06
Вот так то вот :))))


4-1083156246
tower
2004-04-28 16:44
2004.06.06
Как зафиксировать смену пользователя в NT


1-1085616479
nitrino
2004-05-27 04:07
2004.06.06
Unicode-->ANSI


6-1081938722
Andreas
2004-04-14 14:32
2004.06.06
Убрать меню в браузере


8-1080035385
DeQuick
2004-03-23 12:49
2004.06.06
Бегущая строка