

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.
| |
| Bewertung dieses Tipps: |     | (bewertet von insgesamt 48 Besuchern) |

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)

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

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".

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