vb.net

位置:IT落伍者 >> vb.net >> 浏览文章

用VB.net2008编写屏幕抓捕程序


发布日期:2018年05月13日
 
用VB.net2008编写屏幕抓捕程序
Visual Studio在稳定性方面增强不少笔者在使用时很少出现BUG的情况而且Visual Studio在网络应用编程与图像处理方面也比原来版本增强了不少开发效率有了提高本篇文章将介绍如何利用Visual Studio所提供的控件编写一个简单的屏幕抓捕程序本篇文章具有一定的实用性让大家对ContextMenuStrip控件和NotifyIcon控件有所了解且在应用程序开发中需要经常用到这些控件希望对大家有所帮助

打开 Visual Studio 在文件 (File) 菜单上单击新建项目 (New Project) 在新建项目 (New Project) 对话框的模板 (Templates) 窗格中单击 Windows 应用程序(Windows Application)单击确定 (OK) 如图

选择Form窗体在Form窗体中添加ContextMenuStrip控件选中ContextMenuStrip控件输入<抓捕当前屏幕>与<退出程序>我们需要在程序最小化时作为调用程序右键菜单的功能选项如图

随后我们需要在Form中添加NotifyIcon控件NotifyIcon控件作为程序图标显示到窗体的任务栏中我们选择NotifyIcon控件的Icon属性选择一个喜欢的图标接下来最重要的一步就是进行图标和快捷菜单的绑定了我们需要选择NotifyIcon控件的ContextMenuStrip属性选中菜单下拉框中的ContextMenuStrip这样就进行绑定了如图

好了现在界面工作我们已经完成了接下来我们需要进行输入代码的工作了

首先进行声明

Imports SystemRuntimeInteropServices

Imports SystemDrawingImaging

Public Class Form

_

Private Shared Function BitBlt(ByVal hdcDest As IntPtr ByVal nXDest As Integer ByVal nYDest As Integer ByVal nWidth As Integer ByVal nHeight As Integer ByVal hdcSrc As IntPtr _

ByVal nXSrc As Integer ByVal nYSrc As Integer ByVal dwRop As Integer) As Boolean

End Function

_

Private Shared Function CreateDC(ByVal lpszDriver As String ByVal lpszDevice As String ByVal lpszOutput As String ByVal lpInitData As IntPtr) As IntPtr

End Function

Private picture As Bitmap = Nothing 以picture作为图片格式的声明

声明Public Sub capture_window()

Public Sub capture_window()

MeVisible = False

Dim capture As IntPtr = CreateDC(DISPLAY Nothing Nothing Nothing)

Dim get As Graphics = GraphicsFromHdc(capture)

创建一个新的Graphics对象

picture = New Bitmap(ScreenPrimaryScreenBoundsWidth ScreenPrimaryScreenBoundsHeight get)

根据屏幕大小创建一个相同大小的Bitmap

Dim get As Graphics = GraphicsFromImage(picture)

Dim get As IntPtr = getGetHdc() 获取屏幕的句柄

Dim get As IntPtr = getGetHdc() 获取位图的句柄

BitBlt(get ScreenPrimaryScreenBoundsWidth ScreenPrimaryScreenBoundsHeight get _

) 把当前屏幕复制到位图中

getReleaseHdc(get) 释放屏幕句柄

getReleaseHdc(get) 释放位图句柄

pictureSave(CapturePicturejpg ImageFormatJpeg)

MessageBoxShow( 已经把当前截取屏幕保存到CapturePicturejpg检查程序根目录)

MeVisible = True

End Sub

进入 捕获当前屏幕ToolStripMenuItem_Click事件中

Private Sub 捕获当前屏幕ToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles 捕获当前屏幕ToolStripMenuItemClick

capture_window() 调用函数开始捕获程序

End Sub

进入 退出程序ToolStripMenuItem_Click事件中

Private Sub 退出程序ToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles 退出程序ToolStripMenuItemClick

NotifyIconVisible = False

关闭系统

MeClose()

End Sub

好了现在我们运行程序进行测试一下注意如果我们不想看到Form应用程序窗体出现在任务栏中而只是想把程序图标显示在任务栏中请选择Form窗体中的属性ShowInTaskbar=False如图

运行程序选中抓捕当前屏幕即可如图图片将会保存在你程序的根目录中图片名称为CapturePicturejpg如图所示

程序成功运行一个简单的屏幕捕捉程序就完成了大家有兴趣的话还可以再去添加其他的功能如只针对应用程序窗体进行捕捉等使得应用程序的功能更多

上一篇:VB.net2008打造精美电子日历程序

下一篇:VB.net与Media Player9.0嵌入