Nachfolgende Funktion erstellt ein Screenshot eines festlegbaren Bildschirmausschnitts und speichert das Bild dann als Bitmap in die angegebene Datei. Option Explicit ' Benötigte API-Deklarationen Private Declare Function BitBlt Lib "gdi32" ( _ ByVal hDestDC As Long, _ ByVal x As Long, _ ByVal y As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal hSrcDC As Long, _ ByVal xSrc As Long, _ ByVal ySrc As Long, _ ByVal dwRop As Long) As Long Private Declare Function GetDC Lib "user32" ( _ ByVal hWnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" ( _ ByVal hWnd As Long, _ ByVal hdc As Long) As Long Private Declare Function GetDesktopWindow Lib "user32" () As Long ' Screenshot eines bestimmten Bildschirmausschnitts erstellen ' und als Bitmap in einer Datei abspeichern Public Sub Snapshot(oForm As Form, ByVal sFile As String, _ Optional ByVal x As Variant, _ Optional ByVal y As Variant, _ Optional ByVal nWidth As Variant, _ Optional ByVal nHeight As Variant) Dim hWnd As Long Dim nDC As Long Dim oPicBox As Control ' Handle des Windows-Desktop hWnd = GetDesktopWindow() ' Zugang zum Device-Context nDC = GetDC(hWnd) ' Position und Größe des Bildschirmausschnitts If IsMissing(x) Then x = 0 If IsMissing(y) Then y = 0 If IsMissing(nWidth) Then nWidth = Screen.Width / Screen.TwipsPerPixelX If IsMissing(nHeight) Then nHeight = Screen.Height / Screen.TwipsPerPixelY ' temporäre PictureBox erstellen Set oPicBox = oForm.Controls.Add("VB.PictureBox", "myPicTemp") With oPicBox .ScaleMode = vbPixels .Width = oForm.ScaleX(nWidth, vbPixels, oForm.ScaleMode) .Height = oForm.ScaleY(nHeight, vbPixels, oForm.ScaleMode) ' Snapshot in PictureBox blitten .AutoRedraw = True BitBlt .hDC, 0, 0, nWidth, nHeight, nDC, x, y, vbSrcCopy ' Bild abspeichern SavePicture .Image, sFile ' DC wieder freigeben ReleaseDC hWnd, nDC End With ' Control wieder entfernen oForm.Controls.Remove "myPicTemp" End Sub Achtung! Die Angabe der Position und Größe des Bildschirmausschnitts erfolgt in Pixel! Beispiele für den Aufruf: ' gesamten Bildschirmbereich speichern Snapshot Me, "d:\bild.bmp" ' Bildschirmausschnitt 100,100 - 500,500 speichern Snapshot Me, "d:\bild.bmp", 100, 100, 400, 400 Dieser Tipp wurde bereits 7.299 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (einschl. Beispielprojekt!) Ein absolutes Muss - Mehr als 650 MByte geballtes Wissen! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - Online-Update-Funktion u.v.m. |
sevZIP30 Pro DLL ![]() Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Buchempfehlung Tipp des Monats Dieter Otter Snapshot einer Webseite erstellen Mit dieser Funktion lässt sich ein Snapshot einer Webseite erstellen, die aktuell im WebBrowser-Control angezeigt wird. Neu! sevISDN 1.0 ![]() Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. |
||||||||||||||||
|
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. |
|||||||||||||||||


Bildschirmausschnitt fotografieren und abspeichern



