2011-10-25 4 views
0

넷트 넷으로 작성된 웹 사이트가 있습니다. 웹 페이지를 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

당신은 및 'Microsoft ActiveX 데이터 개체 2.5 라이브러리' '라이브러리는 Windows 2000의 마이크로 소프트 CDO'를에 COM 참조를 추가해야합니다. 그런 다음 가져 오십시오 :

Imports ADODB 
Imports CDO 
관련 문제