Zum vorherigen AbschnittZum nächsten Abschnitt Den Bildschirm fotografieren (ohne Fotoapparat ;-)
Wenn Sie einen Screenshot des gesamten Bildschirms oder des aktiven Fensters unter Visual Basic machen wollen, bedienen Sie sich am Besten indirekt der Druck-Taste, indem Sie mit Hilfe einer API-Funktion einen Tastencode senden, der diese auslöst.
Ihre Bewertung:
 12345
    

Bewertung dieses Tipps:  (bewertet von insgesamt 48 Besuchern)

 Zum vorherigen AbschnittZum nächsten Abschnitt Deklaration
Um die API-Funktion "keybd_event" in eigenen Projekten nutzen zu können, muss sie zuerst im Kopf der Datei deklariert werden. Ich empfehle Ihnen, diese Deklaration in einem Modul vorzunehmen, da die Funktion dann später im gesamten Projekt zur Verfügung steht. Andernfalls, wenn Sie lieber eine Form zum Deklarieren verwenden möchten, müssen Sie jedes Vorkommen von "Public" in "Private" ändern:

Public Declare Sub keybd_event Lib "User32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

 Zum vorherigen AbschnittZum nächsten Abschnitt Aufruf
Nun kommen wir zum Aufruf der Funktion bzw. der Subroutine. Wenn Sie einen Screenshot des aktiven Fenster machen wollen, verwenden Sie diesen Code:

keybd_event &H2C, 0, 0, 0

Wenn Sie jedoch einen Screenshot des gesamten Bildschirms anlegen wollen, verwenden Sie folgenden Aufruf:

keybd_event &H2C, 1, 0, 0

 Zum vorherigen AbschnittZum nächsten Abschnitt Einfügen des Screenshots
Nun wurde der Screenshot in die Zwischenablage kopiert und kann ganz leicht eingefügt werden. Lassen Sie dem System jedoch etwas Zeit nach dem Auruf von "keybd_event" und setzen Sie Den Befehl "DoEvents" in die nächste Zeile. Das Bild enthält also nun das Objekt "Clipboard.GetData".

 Zum vorherigen AbschnittZum nächsten Abschnitt Beispiel
Mit den folgenden drei Zeilen Code wird dann ein Screenshot des gesamten Bildschirms erstellt und in einer PictureBox namens "Picture1" angezeigt:

keybd_event &H2C, 1, 0, 0            'Tastencode der Druck-Taste senden
DoEvents                             'Dem System etwas Rechenzeit lassen
Picture1.Picture = Clipboard.GetData 'Das Bild übergeben



Quellen: SHADOWare.de
©2000 by SHADOWare, Thomas Bachem