J'ai un programme simple VB.Net pour enregistrer des pages Web comme mht
le format
actuellement j'utilise de la façon suivante:Comment modifier le code VB.Net pour sauvegarder automatiquement les pages Web?
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
WebBrowser1.Navigate("http://www.google.com")
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim SaveFileDialog1 As New SaveFileDialog()
SaveFileDialog1.Filter = "mht files (*.mht)|*.mht|All files (*.*)|*.*"
If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
fileNamePath = SaveFileDialog1.FileName
SavePage(WebBrowser1.Url.ToString, fileNamePath)
End If
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.cdoSuppressObjects, "", "")
Dim adodbstream As ADODB.Stream = New ADODB.Stream
adodbstream.Type = ADODB.StreamTypeEnum.adTypeText
adodbstream.Charset = "UTF-8"
adodbstream.Open()
iMessage.DataSource.SaveToObject(adodbstream, "_Stream")
adodbstream.SaveToFile(FilePath, ADODB.SaveOptionsEnum.adSaveCreateOverWrite)
End Sub
Mon code travail bien, mais le processus d'enregistrement est comme une page normale, sauf dans un navigateur. Clic-droit> Enregistrer la page sous ... et sélectionner une direction avec un nom pour enregistrer le fichier
Existe-t-il un moyen de sauvegarder automatiquement l'opération? sans fenêtres pop-up, juste donner au programme une direction et un nom de fichier dans le code
par exemple:
SavePage("http://google.com", "C:\google.mht")
ce code n'a pas fonctionné et j'ai erreur Write to file failed.
pour le code suivant
adodbstream.SaveToFile(FilePath, ADODB.SaveOptionsEnum.adSaveCreateOverWrite)
ouais ... juste commenter le code qui crée la boîte de dialogue. Cependant, toutes les pages seront enregistrées au même endroit. – Jeremy
si je vais supprimer cela, qu'en est-il du nom de fichier et le chemin? @Jeremy –
fileNamePath est défini par le dialogue. codez simplement votre chaîne comme vous l'avez dans l'exemple de la façon dont vous voulez appeler la fonction. – Jeremy