写的很完善的屏幕抓图函数,可以直接使用。
''' <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