请问用webbrowser控件如何保存网页的代码?(50分)

  • 主题发起人 主题发起人 simplez
  • 开始时间 开始时间
S

simplez

Unregistered / Unconfirmed
GUEST, unregistred user!
我的窗体上放了一个webbrowser控件,请问如何在后台把当前网页的代码保存成文本文件??谢谢。
 
转贴个别人的代码:

function GetHtml(const WebBrowser:TWebBrowser): string;
const
BufSize = $10000;
var
Size: Int64;
Stream: IStream;
hHTMLText: HGLOBAL;
psi: IPersistStreamInit;
begin
if not Assigned(WebBrowser.Document) then Exit;

OleCheck(WebBrowser.Document.QueryInterface
(IPersistStreamInit, psi));
try
//OleCheck(psi.GetSizeMax(Size));
hHTMLText := GlobalAlloc(GPTR, BufSize);
if 0 = hHTMLText then RaiseLastWin32Error;

OleCheck(CreateStreamOnHGlobal(hHTMLText,
True, Stream));
try
OleCheck(psi.Save(Stream, False));

Size := StrLen(PChar(hHTMLText));
SetLength(Result, Size);
CopyMemory(PChar(Result), Pointer(hHTMLText),
Size);
finally
Stream := nil;
end;
finally
psi := nil;
end;
end;


 
为什么这几句都报错呢:
Stream: IStream;
hHTMLText: HGLOBAL;
psi: IPersistStreamInit;
说Undeclared identifier
 
原因是缺少uses ActiveX;
 
谢谢楼上的大哥,这次问题又变了:
OleCheck(WebBrowser.Document.QueryInterface(IPersistStreamInit, psi));
[Error] Unit1.pas(38): Undeclared identifier: 'OleCheck'

if 0 = hHTMLText then RaiseLastWin32Error;
[Warning] Unit1.pas(42): Symbol 'RaiseLastWin32Error' is deprecated

Unit1 in 'Unit1.pas' {Form1};
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

麻烦高手指点啊,小弟感激不尽。
 
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
OleCtrls, SHDocVw, StdCtrls, Psock, ComObj;

看看哪个你没有添加再添加就是
 
后退
顶部