一个关于HTML保存的问题?[8)](20分)

  • 主题发起人 主题发起人 Haishen
  • 开始时间 开始时间
H

Haishen

Unregistered / Unconfirmed
GUEST, unregistred user!
代码:
[8)] 请问大家,如何才能用程序保存一个网页,要求保存网页上的所有东西,包括文字,图片
,FLASH等...。
如果有办法保存成MHT文件最好,注意如用webbrowser的ExecWB的方法,请告之如何才
能避免弹出那个保存的窗口(不要用虚拟击键的方法)。
如果您真的能帮我回答出这个问题,我将把我全部分给您!

 
我也想知道!
 
从别处查到以下代码,没试过
procedure SaveHTMLSourceToFile(const FileName: string;
WB: TWebBrowser);
var
PersistStream: IPersistStreamInit;
FileStream: TFileStream;
Stream: IStream;
SaveResult: HRESULT;
begin
PersistStream := WB.Document as IPersistStreamInit;
FileStream := TFileStream.Create(FileName, fmCreate);
try
Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;
SaveResult := PersistStream.Save(Stream, True);
if FAILED(SaveResult) then
MessageBox(Handle, 'Fail to save HTML source', 'Error', 0);
finally
{ we are passing soReference in TStreamAdapter constructor,
it is our responsibility to destroy the TFileStream object. }
FileStream.Free;
end;
 
补充一下
IPersistStreamInitzai在activex.pas定义
其次,这个函数可以保存为.htm
但是不能保存为.mht
 
Uses
ActiveX,MSHTML_TLB, SHDocVw_TLB, ComCtrls, OleCtrls;
procedure TForm1.Button1Click(Sender: TObject);
var
HTMLDocument: IHTMLDocument2;
PersistFile: IPersistFile;
begin
HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
PersistFile := HTMLDocument as IPersistFile;
PersistFile.Save(StringToOleStr('c:/SavedFile.html'), System.True);
end;
 
后退
顶部