Rubrik: HTML/Internet/Netzwerk · WebBrowser | VB-Versionen: VB2005, VB2008 | 13.10.08 |
Snapshot einer Webseite erstellen Mit dieser Funktion lässt sich ein Snapshot einer Webseite erstellen, die aktuell im WebBrowser-Control angezeigt wird. | ||
Autor: Dieter Otter | Bewertung: | Views: 14.867 |
www.tools4vb.de | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Mit nachfolgender Funktion lässt sich ein Snapshot einer Webseite erstellen, die aktuell im WebBrowser-Control angezeigt wird.
Imports System.Drawing
''' <summary> ''' Erstellt einen Snapshot vom Inhalt der gerade im ''' WebBrowser-Control angezeigten Webseite ''' </summary> ''' <param name="wb">WebBrowser-Control</param> ''' <param name="bCutScrollbars">optional. True, wenn Scrollbars ''' ausgeblendet werden sollen</param> ''' <returns>Bitmap-Objekt mit dem Inhalt der Webseite als Bild</returns> Private Function wbSnapshot(ByVal wb As WebBrowser, _ Optional ByVal bCutScrollbars As Boolean = True) As Bitmap Dim oBitmap As Bitmap If bCutScrollbars Then ' Snapshot ohne WebBrowser-Scrollbars With wb.Document.Body.ClientRectangle oBitmap = New Bitmap(.Width, .Height) End With Else ' Snapshot mit WebBrowser-Scrollbars oBitmap = New Bitmap(wb.Width, wb.Height) End If ' Inhalt des WebBrowser-Controls in das Bitmap-Objekt "zeichnen" wb.DrawToBitmap(oBitmap, New Rectangle(0, 0, oBitmap.Width, oBitmap.Height)) ' Bitmap-Objekt zurückgeben Return (oBitmap) End Function
Anwendungsbeispiel:
Platzieren Sie auf die Form ein WebBrowser-Control, eine TextBox zur Einagbe der URL, sowie einen Button und ein PictureBox-Control. Die PictureBox dient zum Anzeigen des Snapshots der
aktuellen Webseite.
Public Class Form1 ' Timer-Objekt Dim WithEvents oTimer As New Timer
Private Sub TextBox1_KeyPress(ByVal sender As Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If Asc(e.KeyChar) = 13 Then e.Handled = True ' Buttons deaktivieren, bis Seite vollständig geladen wurde Button1.Enabled = False ' Bildfeld löschen PictureBox1.Image = Nothing ' URL laden und anzeigen WebBrowser1.Navigate(TextBox1.Text) Me.Cursor = Cursors.WaitCursor oTimer.Interval = 100 oTimer.Start() End If End Sub
Private Sub oTimer_Tick(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles oTimer.Tick ' Prüfen, ob Webseite vollständig geladen wurde With WebBrowser1 If .ReadyState = WebBrowserReadyState.Complete Then oTimer.Stop() Me.Cursor = Cursors.Default Button1.Enabled = True End If End With End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Snapshort erstellen PictureBox1.Image = wbSnapshot(WebBrowser1) End Sub
End Class