Форум: "Сети";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
Внизсчитывание из окна ие Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c