实现网页内容保存为*.Mht的问题(调用CreateMHTMLBody过程出错)--感觉有点难度我依照http://blog.csdn.net/
实现网页内容保存为*.Mht的问题(调用CreateMHTMLBody过程出错)--感觉有点难度
我依照http://blog.csdn.net/qsdnet/archive/2006/01/19/584402.aspx里面的文章把代码
拷到DELPHI7工程去,代码如下:
Delphi(Pascal) codeuse CDO_TLB, ADODB_TLB;//(要加入cdosys.dll才有这两单元,文章里有方法)procedure TForm1.WB_SaveAs_MHT(WB: TWebBrowser; FileName: TFileName);var Msg: IMessage; Conf: IConfiguration; Stream: _Stream; URL : widestring; s1,s2: WideString;begin if not Assigned(WB.Document) then Exit; URL := WB.LocationURL; Msg := CoMessage.Create; Conf := CoConfiguration.Create; try Msg.Configuration := Conf; s1 := ''; s2 := ''; Msg.CreateMHTMLBody(URL, cdoSuppressAll, s1, s2); Stream := Msg.GetStream; Stream.SaveToFile(FileName, adSaveCreateOverWrite); finally Msg := nil; Conf := nil; Stream := nil; end;end;
编译可以正常通过,但运行到(下面的url="http://www.g.cn")
Msg.CreateMHTMLBody(URL, cdoSuppressAll, '', '')就会报"UnKnown Error"错误,
在网上查了好多的资料都没解决,所引用的单元CDO_TLB里有句话:
// DepndLst:
// (1) v2.0 stdole, (C:\WINNT\system32\stdole2.tlb)
// (2) v2.5 ADODB, (C:\Program Files\Common Files\System\ado\msado25.tlb)
这两个文件系统里都有,我也拷到程序的目录中去了,用RegSvr32 注册也注册不了.
查了MSDN(http://msdn.microsoft.com/en-us/library/ms527024(EXCHG.10).aspx)
里的CreateMHTMLBody接口,有下面两句:
' Reference to Microsoft ActiveX Data Objects 2.5 Library
' Reference to Microsoft CDO for Windows 2000 Library
这两个类库应该要怎么注册呢或缺少什么?
系统中我已注册的DLL:
regsvr32 C:\WINNT\system32\cdosys.dll
regsvr32 C:\Program Files\Common Files\System\ado\msado15.dll (这文件要是不
注册,delphi7引入cdosys.dll,点"Create unit"会报错)
请大家帮忙看下这个问题应该如何解决,先谢谢啦.弄了两天头都搞大了.
如果可以解决,我会加分的。
[解决办法]确实有点难度
以前没做过类似的功能
帮顶一个