首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

实现网页内容保存为*Mht的有关问题(调用CreateMHTMLBody过程出错)-感觉有点难度

2012-04-11 
实现网页内容保存为*.Mht的问题(调用CreateMHTMLBody过程出错)--感觉有点难度我依照http://blog.csdn.net/

实现网页内容保存为*.Mht的问题(调用CreateMHTMLBody过程出错)--感觉有点难度
我依照http://blog.csdn.net/qsdnet/archive/2006/01/19/584402.aspx里面的文章把代码
拷到DELPHI7工程去,代码如下:

Delphi(Pascal) code
use  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"会报错)

请大家帮忙看下这个问题应该如何解决,先谢谢啦.弄了两天头都搞大了.

如果可以解决,我会加分的。

[解决办法]
确实有点难度
以前没做过类似的功能
帮顶一个

热点排行