现在想根据一个URL保存成mht文件,但是用下面代码保存有些网页报错?
            CDO.Message msg = new CDO.MessageClass();
            CDO.Configuration c = new CDO.ConfigurationClass();
            msg.Configuration = c;
            msg.CreateMHTMLBody("http://www.yesky.com", CDO.CdoMHTMLFlags.cdoSuppressNone, "", "");
            ADODB.Stream stream = msg.GetStream();
            stream.SaveToFile(@"d:\1.mht", ADODB.SaveOptionsEnum.adSaveCreateOverWrite);  
            错误为: 未注册接口(ComException)
            或者能找到下载并保存为mht方件的好方法?

解决方案 »

  1.   

    顶下,mht是什么文件啊???如果仅仅是后缀名而没有特定格式的话,哪么用System.IO.StreamWriter应该就可以了吧。。
      

  2.   

    先引用...system32/cdosys.dllCDO.Message msg = new CDO.MessageClass();
    CDO.Configuration c = new CDO.ConfigurationClass();
    msg.Configuration = c;
    msg.CreateMHTMLBody(
        "http://www.yesky.com", CdoMHTMLFlags.cdoSuppressAll, "", "");
    msg.GetStream().SaveToFile(@"d:\1.mht", 
        ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
      

  3.   

    zswang 正解 
    CDO.CdoMHTMLFlags.cdoSuppressAll
      

  4.   

    您的代码和我的有什么不同?(CDO.CdoMHTMLFlags.cdoSuppressAll也报错)
    我也是引用了system32/cdosys.dll文件的
    并非每个网页保存都报错,只有一些(大部份报错)
    Dll也是注册了的(regsvr32  cdosys.dll)
      

  5.   

    是有的报这个错还是全部都报啊?CDO.Message msg = new CDO.MessageClass();
    CDO.Configuration c = new CDO.ConfigurationClass();
    msg.Configuration = c;
    msg.CreateMHTMLBody(
        "网址名称", CdoMHTMLFlags.cdoSuppressAll, "", "");
    msg.GetStream().SaveToFile(@"保存地址", 
        ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
    是这样吗?