如何使用C#將網頁存成完整封裝檔 (.mht 檔)

  • 10014
  • 0

摘要:如何使用C#將網頁存成完整封裝檔 (.mht 檔)

有時候會想要將某些網頁存起來,但是又懶得一個一個點進去另存新檔 (宅男專用),

這時候就會想要有個很棒的小工具來做這種非常 routine 的事情,但是又找不到......  = ="

最近剛好在MSDN上面回了一篇,想說以前找不到的小工具現在自己把它做出來好了~

以下是實作的步驟:

1. 新建一個專案,並且加入 CDO 的參考

 

2. 打開專案的屬性,將「目標 Framework」改為 .NET Framework 3.5,且將「平台目標」改為 x86

 

3. 在設計檢視裡面丟幾個控制項如下

 

4. 點兩下「存檔」的按鈕以編寫其 Click Event Handler 如下

private void button1_Click(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(this.textBox1.Text))
    {
        DialogResult saveFileResult = this.saveFileDialog1.ShowDialog(this);
        if (saveFileResult == System.Windows.Forms.DialogResult.OK)
        {
            CDO.Message msg = new CDO.MessageClass();
            CDO.Configuration cfg = new CDO.ConfigurationClass();
            msg.Configuration = cfg;
            msg.CreateMHTMLBody(this.textBox1.Text, CDO.CdoMHTMLFlags.cdoSuppressAll, "", "");
            msg.GetStream().SaveToFile(this.saveFileDialog1.FileName, ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
        }
    }
}

 

到這邊就完工囉,不過請不要拿來惡搞,謝謝......  = ="

完整專案檔在這邊:WindowsFormsApplication2.rar

原本回答的問題在這邊:save an entire website to mht using C# and Trident engine