Der Bildschirm oder das aktive Fenster in die Zwischenablage kopieren aus Visual Basic

Zusammenfassung

Dieser Artikel veranschaulicht, wie programmgesteuert das aktive Fenster bzw. der gesamte Bildschirm in die Zwischenablage kopieren und das Bild drucken.

Weitere Informationen

Der Code im Knowledge Base-Artikel:
161299 wie aufzeichnen und Drucken Bildschirms, eines Formulars oder beliebigen Fensters


veranschaulicht, wie ein Formular oder Fenster mit dem gesamten Bildschirm erfassen und in ein Visual Basic-Bildobjekt. Voraussetzung ist das aktive Fenster bzw. der Bildschirm in die Zwischenablage kopieren, ist die Keybd_event-API eine viel einfachere und weniger aufwändige Methode. Aufrufen der Keybd_event-API hat die gleiche Funktion wie das Eingeben der Schlüsselkombinationen Druck (Kopieren des Bildschirms in die Zwischenablage) oder ALT + Druck (Kopieren des aktiven Fensters in die Zwischenablage). Wenn Sie das Bild drucken möchten, kann ein ausgeblendetes PictureBox-Steuerelement diese Funktionalität bereitstellen.

Schrittweises Beispiel

  1. Starten Sie ein neues Visual Basic Standard EXE-Projekt. Form1 wird standardmäßig erstellt.
  2. Fügen Sie drei Befehlsschaltflächen und PictureBox Form1 hinzu.
  3. Fügen Sie den folgenden Code in den Deklarationsabschnitt von Form1 ein:
    Option Explicit
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal _
    bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

    Private Declare Function GetVersionExA Lib "kernel32" _
    (lpVersionInformation As OSVERSIONINFO) As Integer

    Private Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
    End Type

    Private Const KEYEVENTF_KEYUP = &H2
    Private Const VK_SNAPSHOT = &H2C
    Private Const VK_MENU = &H12

    Dim blnAboveVer4 As Boolean

    Private Sub Command1_Click()
    If blnAboveVer4 Then
    keybd_event VK_SNAPSHOT, 0, 0, 0
    Else
    keybd_event VK_SNAPSHOT, 1, 0, 0
    End If
    End Sub

    Private Sub Command2_Click()
    If blnAboveVer4 Then
    keybd_event VK_SNAPSHOT, 1, 0, 0
    Else
    keybd_event VK_MENU, 0, 0, 0
    keybd_event VK_SNAPSHOT, 0, 0, 0
    keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
    keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
    End If
    End Sub

    Private Sub Command3_Click()
    ' Load the captured image into a PictureBox and print it
    Picture1.Picture = Clipboard.GetData()
    Printer.PaintPicture Picture1.Picture, 0, 0
    Printer.EndDoc
    End Sub

    Private Sub Form_Load()
    Dim osinfo As OSVERSIONINFO
    Dim retvalue As Integer

    osinfo.dwOSVersionInfoSize = 148
    osinfo.szCSDVersion = Space$(128)
    retvalue = GetVersionExA(osinfo)
    If osinfo.dwMajorVersion > 4 Then blnAboveVer4 = True

    Picture1.Visible = False
    Command1.Caption = "Print Screen"
    Command2.Caption = "Alt+Print Screen"
    Command3.Caption = "Print Image"
    End Sub

  4. Öffnen Sie Microsoft Paint, und führen Sie das Projekt.
  5. Klicken Sie auf die Schaltfläche Drucken , Farbe wechseln Sie, und drücken Sie STRG + V, um den Inhalt der Zwischenablage in Paint einzufügen. Der gesamte Bildschirm wird eingefügt.
  6. Klicken Sie auf Alt + Druck , Farbe als wechseln Sie und drücken Sie STRG + V . Das aktive Fenster wird eingefügt.
  7. Klicken auf Bild drucken und das aufgenommene Bild wird gedruckt (mit ausgeblendeten PictureBox).

Referenzen

Weitere Informationen klicken Sie auf die nachstehenden Artikelnummern klicken, um sie in der Microsoft Knowledge Base:

161299 wie aufzeichnen und Drucken Bildschirms, eines Formulars oder beliebigen Fensters

189249 zum Feststellen der 32-Bit-Windows-Version verwendet wird
Eigenschaften

Artikelnummer: 240653 – Letzte Überarbeitung: 23.01.2017 – Revision: 2

Feedback