2011-10-25 74 views
0

我有一個用.net 4編寫的網站。我想在網頁上包含一個保存按鈕,將網頁保存爲mht文件。這樣用戶可以將頁面保存爲他/她的桌面上的mht文件類型,而無需使用瀏覽器工具欄。保存按鈕,將網頁保存爲mht文件(.net 4 vb)

我目前正在使用下面的代碼,但我需要修改它,以便捕獲用戶正在查看的當前頁面的url,並將硬編碼的url編碼到按鈕單擊事件中。謝謝。

Partial Class Form1 
    Inherits System.Web.UI.Page 

End Class 

Public Class Form1 

    Private Sub Button1_Click(ByVal sender As System.Object, _ 
         ByVal e As System.EventArgs) Handles Button1.Click 
     SavePage("http://forums.microsoft.com/MSDN/default.aspx", "C:\msdn.mht") 
    End Sub 

    Private Sub SavePage(ByVal Url As String, ByVal FilePath As String) 
     Dim iMessage As CDO.Message = New CDO.Message 
     iMessage.CreateMHTMLBody(Url, _ 
     CDO.CdoMHTMLFlags.cdoSuppressNone, "", "") 
     Dim adodbstream As ADODB.Stream = New ADODB.Stream 
     adodbstream.Type = ADODB.StreamTypeEnum.adTypeText 
     adodbstream.Charset = "US-ASCII" 
     adodbstream.Open() 
     iMessage.DataSource.SaveToObject(adodbstream, "_Stream") 
     adodbstream.SaveToFile(FilePath, _ 
        ADODB.SaveOptionsEnum.adSaveCreateOverWrite) 
    End Sub 

End Class 

回答

0

試試這個:

SavePage(HttpContext.Current.Request.Url.AbsoluteUri, "C:\whatever.mht") 
+0

感謝,我得到以下錯誤,當我試圖實現您的代碼更改:「無法加載文件或程序集Interop.ADODB,版本= 6.0.0.0,文化=中立, PublicKeyToken = null'或它的一個依賴關係,系統找不到指定的文件。「 –

2

你需要COM引用添加到 '微軟CDO Windows 2000庫' 和 'Microsoft ActiveX數據對象2.5庫'。然後將它們導入:

Imports ADODB 
Imports CDO