Форум: "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