摘要:如何使用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



