Banner

Copiare un'area dello schermo con VB .Net

Con il seguente codice è possibile copiare una qualunque zona dello schermo e memorizzarla in un'immagine:

Class Form1

    Private Function CopiaAreaSchermo() As System.Drawing.Bitmap

        'definizione dell'area dello schermo da copiare: in questo caso è una porzione rettangolare di 150x200 pixel e il suo
        'angolo superiore SX è situato nel punto (500,296) dello schermo

        Dim areaDaCopiare As Rectangle = New Rectangle(500, 296, 150, 200)

        'definizione del punto in cui vogliamo che l'immagine copiata venga rappresentata nella nostra Form
        Dim posizione As Point = New Point(20, 30)

        'impostazione della bitmap che memorizzerà l'immagine da copiare
        Dim immagineCopiata As Bitmap = New Bitmap(150, 200)

        'creazione di un'istanza dell'oggetto Graphics
        Dim g As Graphics = Graphics.FromImage(immagineCopiata)

        'si copia l'area scelta
        g.CopyFromScreen(areaDaCopiare.X, areaDaCopiare.Y, posizione.X, posizione.Y, New Size(150, 200), _
                         CopyPixelOperation.SourceCopy)
                         
        Return immagineCopiata

    End Function

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Me.BackgroundImageLayout = ImageLayout.None

        'si carica l'immagine copiata nello sfondo della Form
        Me.BackgroundImage = CopiaAreaSchermo()

    End Sub

End Class

Come copiare tutto lo schermo

Se vogliamo effettuare lo screenshot di tutto lo schermo, è sufficiente cambiare le dimensioni dell'area da catturare e i punti in cui iniziare a copiare e dove inserire l'immagine.

Class Form1

    Private Function CopiaAreaSchermo() As System.Drawing.Bitmap

        'definizione dell'area dello schermo da copiare: 
        Dim areaDaCopiare As Rectangle = New Rectangle(0, 0, My.Computer.Screen.WorkingArea.Width, _
                                                       My.Computer.Screen.WorkingArea.Height)

        'impostazione della bitmap che memorizzerà  l'immagine da copiare
        Dim immagineCopiata As Bitmap = New Bitmap(areaDaCopiare.Width, areaDaCopiare.Height)

        'creazione di un'istanza dell'oggetto Graphics
        Dim g As Graphics = Graphics.FromImage(immagineCopiata)

        'si copia l'area scelta
        g.CopyFromScreen(0, 0, 0, 0, New Size(areaDaCopiare.Width, areaDaCopiare.Height), _
                         CopyPixelOperation.SourceCopy)

        Return immagineCopiata

    End Function

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Me.BackgroundImageLayout = ImageLayout.None

        'si carica l'immagine copiata nello sfondo della Form
        Me.BackgroundImage = CopiaAreaSchermo()

    End Sub

End Class
Siti Ufficiali Editor Free Guide Online Utility
Microsoft Visual Studio MSDN InnoSetup
Apple XCode Documentazione .Net Cyber Installer
Oracle NetBeans Apple Developer NSIS
Debian Eclipse W3C Diagram Online
Distrowatch Bluefish W3C Validator Junior Icon Editor
Brackets W3Schools Edit Cursors Online
TextWrangler

Sito realizzato da Fiaschi Francesco - Aggiornamento Dicembre 2018

W3C - XHTML 1.1 Validated