永州网,内容丰富有趣,生活中的好帮手!
永州网 > 知识 > 正文

在VB.NET中进行抓屏

时间:2000-03-18

InitializeComponent在 InitializeComponent 调用之后添加任何初始化End Sub窗体重写处置以清理组件列表

友情提示:本文共有 4198 个字,阅读大概需要 9 分钟。

Public Class Form1

Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "

Public Sub New()

MyBase.New()

’该调用是 Windows 窗体设计器所必需的。

InitializeComponent()

’在 InitializeComponent() 调用之后添加任何初始化

End Sub

’窗体重写处置以清理组件列表。

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

If disposing Then

If Not (components Is Nothing) Then

components.Dispose()

End If

End If

MyBase.Dispose(disposing)

End Sub

’Windows 窗体设计器所必需的

Private components As System.ComponentModel.IContainer

’注意:以下过程是 Windows 窗体设计器所必需的

’可以使用 Windows 窗体设计器修改此过程。

’不要使用代码编辑器修改它。

Friend WithEvents Button1 As System.Windows.Forms.Button

Friend WithEvents Timer1 As System.Windows.Forms.Timer

Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox

Friend WithEvents Button2 As System.Windows.Forms.Button

Private Sub InitializeComponent()

Me.components = New System.ComponentModel.Container

Me.Button1 = New System.Windows.Forms.Button

Me.Timer1 = New System.Windows.Forms.Timer(Me.components)

Me.PictureBox1 = New System.Windows.Forms.PictureBox

Me.Button2 = New System.Windows.Forms.Button

Me.SuspendLayout()

’Button1

Me.Button1.ForeColor = System.Drawing.Color.Black

Me.Button1.Location = New System.Drawing.Point(8, 312)

Me.Button1.Name = "Button1"

Me.Button1.Size = New System.Drawing.Size(112, 32)

Me.Button1.TabIndex = 0

Me.Button1.Text = "抓屏"

’PictureBox1

Me.PictureBox1.Location = New System.Drawing.Point(8, 8)

Me.PictureBox1.Name = "PictureBox1"

Me.PictureBox1.Size = New System.Drawing.Size(392, 288)

Me.PictureBox1.TabIndex = 4

Me.PictureBox1.TabStop = False

’Button2

Me.Button2.ForeColor = System.Drawing.Color.Black

Me.Button2.Location = New System.Drawing.Point(264, 312)

Me.Button2.Name = "Button2"

Me.Button2.Size = New System.Drawing.Size(112, 32)

Me.Button2.TabIndex = 5

Me.Button2.Text = "保存"

’Form1

Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)

Me.BackColor = System.Drawing.Color.FromArgb(CType(192, Byte), CType(192, Byte), CType(255, Byte))

Me.ClientSize = New System.Drawing.Size(408, 358)

Me.Controls.Add(Me.Button2)

Me.Controls.Add(Me.PictureBox1)

Me.Controls.Add(Me.Button1)

Me.ForeColor = System.Drawing.Color.FromArgb(CType(192, Byte), CType(255, Byte), CType(255, Byte))

Me.Name = "Form1"

Me.Text = "wgscd"

Me.ResumeLayout(False)

End Sub

#End Region

’VB.NET中进行图象捕获 ,需要先引用一些API,以下是声明:

Private Declare Function CreateCompatibleDC Lib "GDI32" (ByVal hDC As Integer) As Integer

Private Declare Function CreateCompatibleBitmap Lib "GDI32" (ByVal hDC As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer) As Integer

Private Declare Function SelectObject Lib "GDI32" (ByVal hDC As Integer, ByVal hObject As Integer) As Integer

Private Declare Function BitBlt Lib "GDI32" (ByVal srchDC As Integer, ByVal srcX As Integer, ByVal srcY As Integer, ByVal srcW As Integer, ByVal srcH As Integer, ByVal desthDC As Integer, ByVal destX As Integer, ByVal destY As Integer, ByVal op As Integer) As Integer

Private Declare Function DeleteDC Lib "GDI32" (ByVal hDC As Integer) As Integer

Private Declare Function DeleteObject Lib "GDI32" (ByVal hObj As Integer) As Integer

Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Integer) As Integer

Const SRCCOPY As Integer = &HCC0020

’将以下代码添加到Button1_Click事件中:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim hDC, hMDC As Integer

Dim hBMP, hBMPOld As Integer

Dim sw, sh As Integer

hDC = GetDC(0)

hMDC = CreateCompatibleDC(hDC)

sw = Screen.PrimaryScreen.Bounds.Width

sh = Screen.PrimaryScreen.Bounds.Height

hBMP = CreateCompatibleBitmap(hDC, sw, sh)

hBMPOld = SelectObject(hMDC, hBMP)

BitBlt(hMDC, 0, 0, sw, sh, hDC, 0, 0, SRCCOPY)

hBMP = SelectObject(hMDC, hBMPOld)

PictureBox1.Image = Image.FromHbitmap(New IntPtr(hBMP))

DeleteDC(hDC)

DeleteDC(hMDC)

DeleteObject(hBMP)

Me.Button2.Enabled = True

End Sub

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

Me.Button2.Enabled = False

End Sub

Dim ofd As New SaveFileDialog

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

ofd.Filter = "jpg file|*.jpg|bmp file|*.bmp"

Dim bmp As Bitmap = Me.PictureBox1.Image

If ofd.ShowDialog = DialogResult.OK Then

bmp.Save(ofd.FileName)

End If

End Sub

End Class

收集不易,本文《在VB.NET中进行抓屏》知识如果对你有帮助,请点赞收藏并留下你的评论。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(2)
  1. 怜雪凝梦2024-02-03 19:10怜雪凝梦[贵州省网友]202.45.2.144
    真的太感动了,这种精神就是我们共同抗击疫情的力量所在,加油!
    顶8踩0
  2. 客户2024-02-03 18:48客户[上海市网友]203.4.174.29
    江西疾控的同志们太伟大了,为了抗击疫情不畏艰险,向他们致敬!
    顶0踩0
相关阅读
猪产后三种难治疾病的防治方法

猪产后三种难治疾病的防治方法

...用3%明矾水洗涤,整复时两人托起子宫与阴道等高,一人进行整复,左手握子宫角,右手拇指从子宫角端进行整复,再把手握成锥状象翻肠子一样,在猪不动时进行用力推压,依次内翻,用此法将两子宫角先后推入子宫体,并同...

2024-01-10 #百科

【无私分享:ASP.NET CORE 项目实战(第七章)】文件操作 FileHelper

【无私分享:ASP.NET CORE 项目实战(第七章)】文件操作 FileHelper

绝对路径,路径,目录,方法,分隔符,文件,检测,当前路径,应用程序,获取文件,目录索引,基本操作,定义,盘符,简介,系统,下判断,主要因素,如何去,是否存在,构造器,静态方法,实战,会用,三元,东西,区别,原理,姓名,大神

2000-03-24 #知识

如何成功进行考研口语复试自我介绍

如何成功进行考研口语复试自我介绍

考研口语复试自我介绍考研初试过去了,很多信心满满地同学已经开始准备复试的口语了,在这里给大家推荐一个复试的口语自我介绍模板,同学们可以参考使用。下面是小编为您整理的关于考研口语复试自我介绍的相关资料,...

2024-01-12 #头条

倾情建设:建筑环境与设备工程专业学生的自荐信

倾情建设:建筑环境与设备工程专业学生的自荐信

...调与制冷技术有较深入的了解。就计算机水平而言,熟悉VB编程语言,能熟练运用AUTOCAD。在校三年里,尊师守纪,关心集体。学习了XX程序设计,熟练Window以及Photoshop等计算机辅助设计软件,熟练Office等常用办公软件。我希望能...

2024-02-05 #生活

处理有争议项目的客户沟通:有效沟通技巧与策略指南

处理有争议项目的客户沟通:有效沟通技巧与策略指南

...沟通是至关重要的。本文将探讨如何与有争议项目的客户进行沟通,包括建立信任和尊重、倾听客户的观点和担忧、提供清晰的解释和解决方案以及保持积极的沟通态度。我们将讨论如何处理客户的疑虑和抵触情绪,并提出建设...

2024-02-22 #随笔

iPhone4S网络连接问题解决方案

iPhone4S网络连接问题解决方案

...3G信号,所以手机只能运行在2G模式下,所以我们需要对2G进行一些特殊设置,才能让iPhone4S上网。至于iPhone4S使用宽带Wifi无线上网的方法,我们可以参考这篇《》iPhone4S上网冲浪截图iPhone 4S中国移动上网设置教程:进入设置-通用-...

2024-01-31 #随笔

真实反映:2022全国中小学生安全教育日观后感精选

真实反映:2022全国中小学生安全教育日观后感精选

...闻大求真”。节目从交通、消防、溺水、电梯安全等方面进行了教科书式的救援,让我学到了很多的安全知识和急救知识。从节目开始讲到的消防知识,我知道了当厨房的油锅起火时,往油锅中倒入食用油可灭火,但却并不是最...

2023-12-04 #文学

解决VS引用文件黄色感叹号丢失文件的方法

解决VS引用文件黄色感叹号丢失文件的方法

...这类问题。VS是微软开发的一款超级强大的IDE,深受广大.net开发者喜爱。但是再强大,也会有它的bug和缺点。多人协同开发时,不知道你有没有遇到一个这样的情况:第二天上班,早早来到公司,打开电脑,拉取一下项目最新的...

2024-02-07 #生活