본문 바로가기

자료

C# VB.NET에서 현재 화면 스크린 캡쳐

728x90

C# VB.NET에서 현재 화면 스크린 캡쳐


  'Dim sz As Size
    'Dim bMap As Bitmap
    'Dim gPic As Graphics

    'Private Function getAreaScreenImage() As Image '// 영역지정 스샷을 찍기위한 루틴
    '    Dim pnt As Point = PointToScreen(New Point(Panel1.Location.X, Panel1.Location.Y)) '// 시스템화면을 기준으로 좌표를 구함

    '    Me.sz = New Size(My.Computer.Screen.WorkingArea.Width, My.Computer.Screen.WorkingArea.Height) '// 사이즈는 작업영역의 가로세로 만큼
    '    Me.bMap = New Bitmap(Panel1.ClientSize.Width, Panel1.ClientSize.Height, PixelFormat.Format32bppArgb) '// 프로그램 내의 패널 가로세로 만큼
    '    Me.gPic = Graphics.FromImage(bMap) '// 
    '    gPic.CopyFromScreen(pnt.X, pnt.Y, 0, 0, sz) '// 스크린샷을 찍음.
    '    Return bMap '// 스샷찍힌 그래픽을 이미지 형식으로 반환함.
    'End Function

    Dim bm As Bitmap

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        bm = New Bitmap(400, 130)

        Dim g As Graphics
        g = Graphics.FromImage(bm)

        ' 주의: 좌표는 스크린 기준의 절대 좌표임

        ' g.CopyFromScreen(350, 210, 0, 0, New Size(380, 70))
        g.CopyFromScreen(300, 180, 0, 0, New Size(400, 130))
        Dim r As New Random
        Dim r1 As Integer
        r1 = r.Next(0, 99999)
        TextBox1.Text = r1
        bm.Save("C:\" & TextBox1.Text & ".bmp")
    End Sub
728x90