如何在.net中用c#实现 将网页内容自动另存为"XXX.html",就是将 浏览器中的另存为变为程序中自动执行axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_SAVEAS,SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER,ref outPut,ref outPut);能不能够不弹出另存为的对话框?

解决方案 »

  1.   

    你直接把axWebBrowser1.Document.OutHtml寫入一個HTML文件不就OK
      

  2.   

    你用WebBrowser控件,从WebBrowser.DocumentStream读出内容,写到新建的FileStream里,然后用FileStream.Flush()方法,写到文件里。后台保存,没有弹出什么对话框。
      

  3.   

    還有,WinForm不是有WebBrowser么?還用COM?
      

  4.   


    在.net2.0中增加了
    WebBrowser.DocumentText 属性 
    WebBrowser.DocumentStream 属性 
    它们都能用来读取网页内容
      

  5.   

    以前写的批量保存网页的程序,给你参考下吧: /// <summary>
    /// 刷新下载信息
    /// </summary>
    /// <param name="current">当前页码</param>
    private void refreshDownloadInfo(long current)
    {
    lb_Info.Text = "";

    if (current != -1)
    {
    lb_Info.Text = String.Format("正在下载{0}页...", current);
    }
    else
    {
    lb_Info.Text = "下载完成!";
    }
    } /// <summary>
    /// 打开指定页面
    /// </summary>
    /// <param name="URL">页面URL</param>
    private void openPage(string URL)
    {
    System.Object nullObject = 0 ; 
    string str = "" ; 
    System.Object nullObjStr = str ; 
    Cursor.Current = Cursors.WaitCursor ; 
    WB_Main.Navigate(URL , ref nullObject , ref nullObjStr , ref nullObjStr , ref nullObjStr ) ; 
    Cursor.Current = Cursors.Default ; 
    } /// <summary>
    /// 获取指定页面内容
    /// </summary>
    /// <param name="URL">URL</param>
    /// <returns>页面内容</returns>
    private string GetAPageCode(string URL)
    {
    Application.DoEvents();
    openPage(URL);
    Application.DoEvents();
    while (WB_Main.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE)
    {
    Application.DoEvents();
    } mshtml.IHTMLDocument3 idoc = (mshtml.IHTMLDocument3)WB_Main.Document; 
    return idoc.documentElement.innerText;
    } /// <summary>
    /// 保存指定页面的内容到文本文件
    /// </summary>
    /// <param name="URL">URL</param>
    /// <param name="FileName">文本文件名</param>
    private void SaveAPage(string URL, string FileName)
    { string str = GetAPageCode(URL); try
    {
    //建立文件流
    FileStream fs = new FileStream(FileName,FileMode.OpenOrCreate, FileAccess.ReadWrite);
    byte[] b = System.Text.Encoding.Default.GetBytes(str);
    fs.Write(b, 0, b.Length);
    fs.Close();
    }
    catch(Exception e)
    {
    MessageBox.Show("Error: As File Saveing. \n" + e.Message);
    }
    }
      

  6.   

    将axWebBrowser1.Document 转换为System.Runtime.InteropServices.ComTypes.IPersistFile接口, 然后调用Save方法
    不过无法保存图片
      

  7.   

    ExecWB方法的pvaIn, pvaOut在C#中好像无法实现 除非你用C++.NET做成DLL再调用