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

Вниз

считывание из окна ие   Найти похожие ветки 

 
Johnny Raw ©   (2004-09-04 22:18) [0]

Прочитал в форуме про считывание из окна ие(там Rouse_ © привел код который это делает).Даже примерно не представляю как это работает. Можно ее как-нибудь модифицировать чтоб считывался не код страницы а внутренний текст?
типа как в TWebBrowser
S:=Webbrowser1.oleobject.document.body.innerText;

тот самый код:

function GetHTMLCode(WB: IWebbrowser2; ACode: TStrings): Boolean;
 var
 ps: IPersistStreamInit;
 s: string;
 ss: TStringStream;
 sa: IStream;
 begin
 ps := WB.document as IPersistStreamInit;
 s := "";
 ss := TStringStream.Create(s);
 try
   sa:= TStreamAdapter.Create(ss, soReference) as IStream;
   Result := Succeeded(ps.Save(sa, Bool(True)));
   if Result then ACode.Add(ss.Datastring);
 finally
   ss.Free;
 end;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 var
 ShellWindow: IShellWindows;
 WB: IWebbrowser2;
 spDisp: IDispatch;
 IDoc1: IHTMLDocument2;
 k: Integer;
 begin
 ShellWindow := CoShellWindows.Create;
 // get the running instance of Internet Explorer
 for k := 0 to ShellWindow.Count do
 begin
   spDisp := ShellWindow.Item(k);
   if spDisp = nil then Continue;
   // QueryInterface determines if an interface can be used with an object
   spDisp.QueryInterface(iWebBrowser2, WB);
   if WB <> nil then
   begin
     WB.Document.QueryInterface(IHTMLDocument2, iDoc1);
     if iDoc1 <> nil then
     begin
       WB := ShellWindow.Item(k) as IWebbrowser2;
       begin
         // Add HTML Code to Memo
         Memo1.Lines.Add("****************************************");
         Memo1.Lines.Add(WB.LocationURL);
         Memo1.Lines.Add("****************************************");
         GetHTMLCode(WB, Memo1.Lines);
       end;
     end;
   end;
 end;
 end;


 
deff   (2004-09-05 00:23) [1]

а что НЕ работает?


 
Johnny Raw ©   (2004-09-05 17:32) [2]

Хотел заменить
ps := WB.document as IPersistStreamInit;
на
ps := WB.document.body.innertext as IPersistStreamInit;
пишет что body - undeclarated identifier
походу такую чушь хотел сделать


 
Rouse_ ©   (2004-09-06 09:13) [3]

Измени GetHTMLCode на следующий код:

function GetHTMLCode(WB: IWebbrowser2; ACode: TStrings): Boolean;
var
 Range: IHTMLTxtRange;
begin
 Range := ((WB.Document as IHTMLDocument2).body as
   IHTMLBodyElement).createTextRange;
 ACode.Text :=  Range.text;
end;


 
Rouse_ ©   (2004-09-06 09:24) [4]

точнее ACode.Text :=  ACode.Text + Range.text; :)


 
Johnny Raw ©   (2004-09-07 17:01) [5]

Thanks a lot


 
Никита ©   (2004-09-07 18:52) [6]

Удалено модератором



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

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

Наверх




Память: 0.48 MB
Время: 0.026 c
4-1096990242
Leaner
2004-10-05 19:30
2004.11.14
Не всегда появляется трей-иконка


1-1098871899
Pashkerton
2004-10-27 14:11
2004.11.14
Обработка события


14-1099141295
Ilya___
2004-10-30 17:01
2004.11.14
Подскажите как работает система баннерного


14-1099084497
Alein
2004-10-30 01:14
2004.11.14
SkinMaker_ство.


3-1097652026
first_may
2004-10-13 11:20
2004.11.14
Выборка...