vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2018
 
zurück
Rubrik: HTML/Internet/Netzwerk · WebBrowser   |   VB-Versionen: VB2005, VB200822.02.10
Snapshot einer kompletten Internetseite

Ein kleines Beispiel, wie man eine komplette Intenetseite "fotografieren" und abspeichern kann.

Autor:   Mario WeichertBewertung:     [ Jetzt bewerten ]Views:  9.471 
www.pixcore.deSystem:  Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Hier einmal ein kleines Beispiel, wie man den Inhalt einer ganzen Internetseite als Bild festhalten kann.
Auf eine visuelle Darstellung der Internetseite in einem WebBroser Control wird hier verzichtet.

Fangen wir an...
Als erstes fügen wir unserer Anwendung folgende Deklaration hinzu:

Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Windows.Forms

Als nächstes schreiben wir eine Public Function, um den Code von überall aus unserer Anwendung aufrufen zu können. Nennen wir unsere Funktion mal "Webshot":

''' <summary>
''' Erstellt einen Snapshot vom Inhalt einer beliebigen Webseite
''' </summary>
''' <param name="URL">URl der Webseite</param>
''' <returns>Bitmap-Objekt mit dem Inhalt der Webseite als Bild</returns>
Private Function WebShot(ByVal URL As String) As Bitmap
  ' Neues WebBrowser-Objekt erstellen
  Dim wb As New WebBrowser()
 
  With wb
    ' Scrollbars ausblenden
    .ScrollBarsEnabled = False
 
    ' Fehlermeldungen unterdrücken
    .ScriptErrorsSuppressed = True
 
    ' URL aufrufen
    .Navigate(URL)
 
    ' Warten, bis Seite geladen ist
    While .ReadyState <> WebBrowserReadyState.Complete
      Application.DoEvents()
    End While
 
    ' Größe des Browserfensters festlegen
    .Width = .Document.Body.ScrollRectangle.Width
    .Height = .Document.Body.ScrollRectangle.Height
 
    ' Bitmap in der festgelegten Größe erstellen
    Dim bitmap As New Bitmap(.Width, .Height)
 
    ' Inhalt des WebBroewsers als Bitmap speichern
    .DrawToBitmap(bitmap, New Rectangle(0, 0, .Width, .Height))
 
    ' Ressourcen freigeben
    .Dispose()
 
    ' Bitmap-Objekt zurückgeben
    Return (bitmap)
  End With
End Function

Die Funktion lädt die Internetseite in ein unsichtbares WebBrowser-Control, erstellt einen Snapshot und gibt das Bild dann als Bitmap-Objekt zurück.

Den Snapshot kann man dann bspw. in einem PictureBox-Control wie folgt anzeigen...

Me.Cursor = Cursors.WaitCursor
PictureBox1.Image = WebShot("http://www....")
Me.Cursor = Cursors.Default
... oder auch direkt als Bilddatei abspeichern:

Me.Cursor = Cursors.WaitCursor
With WebShot("http://www....")
  .Save("d:\temp\test.jpg", Imaging.ImageFormat.Jpeg)
End With
Me.Cursor = Cursors.Default

Dieser Tipp wurde bereits 9.471 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (6 Beiträge)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2018 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel