.net写的抓屏函数

写的很完善的屏幕抓图函数,可以直接使用。

    ''' <summary>
    ''' 屏幕截图
    ''' </summary>
    ''' <param name="handle">截图的目标对象句柄(不正确的句柄表示截取全屏)</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function SnapScreen(ByVal handle As Integer) As System.Drawing.Image
        Dim grc As System.Drawing.Graphics = Nothing

        Try
            Dim rect As System.Drawing.Rectangle
            Dim control As System.Windows.Forms.Control = System.Windows.Forms.Control.FromHandle(New System.IntPtr(handle))

            If control Is Nothing Then
                rect = Screen.PrimaryScreen.WorkingArea
            Else
                rect = New System.Drawing.Rectangle(control.Location, control.Size)
            End If

            Dim bmp As New System.Drawing.Bitmap(rect.Size.Width, rect.Size.Height)
            grc = System.Drawing.Graphics.FromImage(bmp)
            grc.CopyFromScreen(rect.X, rect.Y, 0, 0, rect.Size)

            Return bmp
        Catch ex As Exception
            Throw ex
        Finally
            If grc IsNot Nothing Then
                grc.Dispose()
            End If
        End Try
    End Function

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VB.NET是一种基于.NET框架的编程语言,而jieping是指截屏的意思。在VB.NET中,我们可以使用一些方法来实现截屏的功能。 首先,我们可以使用`Screen.PrimaryScreen.Bounds`属性获取主屏幕的大小和位置信息。然后,我们可以创建一个与主屏幕大小相同的位图对象,使用`Graphics`类的`CopyFromScreen`方法将屏幕的图像复制到位图上。代码示例如下: ```vb Imports System.Drawing Public Class MainForm Private Sub btnCapture_Click(sender As Object, e As EventArgs) Handles btnCapture.Click '获取主屏幕的大小信息 Dim screenBounds As Rectangle = Screen.PrimaryScreen.Bounds '创建与主屏幕相同大小的位图对象 Dim bmp As New Bitmap(screenBounds.Width, screenBounds.Height) '将屏幕图像复制到位图上 Using g As Graphics = Graphics.FromImage(bmp) g.CopyFromScreen(screenBounds.Location, Point.Empty, screenBounds.Size) End Using '保存位图到文件 bmp.Save("screenshot.png", System.Drawing.Imaging.ImageFormat.Png) End Sub End Class ``` 以上示例代码演示了如何通过点击按钮来进行截屏,并将截屏的图像保存到名为`screenshot.png`的文件中。 除了上述方法外,我们还可以使用一些第三方库或者调用Windows API来实现截屏的功能。例如,可以使用`user32.dll`中的`PrintWindow`函数来实现窗口截图。不同的截屏方式适用于不同的场景和需求,开发者可以根据具体情况选择合适的方法来进行截屏操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值