Ausgewählten Bereich von Bildschirm aufnehmen [VB 2010]

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    VB.NET-Quellcode

    1. Private Function CreateScreenshot(ByVal left As Integer, ByVal top As Integer, ByVal width As Integer, ByVal height As Integer) As Bitmap
    2. Dim bmp As New Bitmap(width, height)
    3. Dim g As Graphics = Graphics.FromImage(bmp)
    4. g.CopyFromScreen(left, top, 0, 0, New Size(width, height))
    5. g.Dispose()
    6. Return bmp
    7. End Function
    1. Du musst natürlich die nötigen Parameter übergeben (x, y, width, height)
    2. Willst du das Bild anzeigen? Wenn du mit einer PicBox arbeitest, dann so:

    VB.NET-Quellcode

    1. PictureBox.Image = CreateScreenshot(.., .., .., ..)
    Für alle, die bequem ihre Programmeinstellungen speichern möchten: [Open Source] INI 2.1
    • Intelligentes und objektorientiertes Konzept
    • Nützliche und übersichtliche Features
    • Umfangreiche Einsatzmöglichkeiten


    Geld war stets rar, wie Dateiarchive.

    Semiconductor schrieb:

    Implementierung mit einem zweiten Monitor
    geht so:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Dim bmp As Bitmap = Screenshot(0)
    4. bmp.Save("c:\Temp\__Test0.png", System.Drawing.Imaging.ImageFormat.Png)
    5. bmp = Screenshot(1)
    6. bmp.Save("c:\Temp\__Test1.png", System.Drawing.Imaging.ImageFormat.Png)
    7. End Sub
    8. Function Screenshot(index As Integer) As Bitmap
    9. Dim b As Bitmap
    10. Dim x0 As Integer
    11. If index = 0 Then
    12. x0 = 0
    13. b = New Bitmap(Screen.AllScreens(0).WorkingArea.Width, Screen.AllScreens(0).WorkingArea.Height)
    14. Else
    15. x0 = Screen.AllScreens(0).WorkingArea.Width
    16. b = New Bitmap(Screen.AllScreens(1).WorkingArea.Width, Screen.AllScreens(1).WorkingArea.Height)
    17. End If
    18. Using g As Graphics = Graphics.FromImage(b)
    19. g.CopyFromScreen(x0, 0, 0, 0, b.Size)
    20. g.Dispose()
    21. End Using
    22. Return b
    23. End Function
    24. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!