|
Тема |
Re: Попълване на web форма от Delphi [re: Misho] |
|
Автор |
Pechenia (нема лабаво ;-) |
|
Публикувано | 11.12.06 12:25 |
|
|
в примера е показано обхождане на всички инстанции на IE и извличането на интерфейса Document към сорса в това IE.
Оттук нещата са лесни - попълването на един елемент от страницата става чрез DOM на IE, например ако имаш таг:
<input type=text id=password>
то попълването му става с:
Document.password.value:='bla-bla';
За да се ползва ефективно, трябва да се знае DOM-а, например човек да е писал повечко JavaScript. Има постановки за адресирането във форми, фреймове, при липса на id атрибути и прочее, но това вече е извън обхвата на въпроса ти. Та с две думи задачата ти е:
1) да извлечеш интерфейса Document
2) да попълниш елементите - имена, пароли и т.н.
3) да submit-неш формата
Успех.
uses
...,shDocvw,MSHTML;
procedure TForm1.Button1Click(Sender: TObject) ;
var
ShellWindows: TShellWindows;
ShellWindowDisp: IDispatch;
WebBrowser: IWebbrowser2;
Document: IHTMLDocument2;
Count: integer;
begin
BrowserList.Clear;
ShellWindows := TShellWindows.Create(nil) ;
try
for Count := 0 to ShellWindows.Count - 1 do
begin
ShellWindowDisp := ShellWindows.Item(Count);
if ShellWindowDisp = nil then Continue;
ShellWindowDisp.QueryInterface(iWebBrowser2, WebBrowser);
if WebBrowser.LocationURL = '' then Continue;
if Assigned(WebBrowser.Document) and (pos ('http://....',WebBrowser.LocationURL)>0)then
begin
Document:=WebBrowser.Document as IHTMLDocument2;
BrowserList.Items.Add (copy (Document.body.innerHTML,1,100));
end;
end;
finally
ShellWindows.Free;
end;
end;
чети и дишай по-леко
|
| |
|
|
|