信息发布软件,b2b软件,广告发布软件

标题: 用VB.net2008编写屏幕抓捕程序和软件的实例教程 [打印本页]

作者: 信息发布软件    时间: 2017-5-5 14:47
标题: 用VB.net2008编写屏幕抓捕程序和软件的实例教程

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

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

   

用VB.net2008编写屏幕抓捕程序和软件的实例教程 b2b软件

  


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

  

用VB.net2008编写屏幕抓捕程序和软件的实例教程 b2b软件

    


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

  

用VB.net2008编写屏幕抓捕程序和软件的实例教程 b2b软件

  

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

  首先进行声明:  

  Imports System.Runtime.InteropServices

  Imports System.Drawing.Imaging  

  Public Class Form1  

   _

   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()

   Me.Visible = False

   Dim capture1 As IntPtr = CreateDC("DISPLAY", Nothing, Nothing, Nothing)

   Dim get1 As Graphics = Graphics.FromHdc(capture1)

   '创建一个新的Graphics对象

   picture = New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, get1)

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

   Dim get2 As Graphics = Graphics.FromImage(picture)

   Dim get3 As IntPtr = get1.GetHdc() '获取屏幕的句柄

   Dim get4 As IntPtr = get2.GetHdc() '获取位图的句柄   

   BitBlt(get4, 0, 0, Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, get3, _

   0, 0, 13369376) '把当前屏幕复制到位图中

   get1.ReleaseHdc(get3) '释放屏幕句柄

   get2.ReleaseHdc(get4) '释放位图句柄

   picture.Save("CapturePicture.jpg", ImageFormat.Jpeg)

   MessageBox.Show(" 已经把当前截取屏幕保存到CapturePicture.jpg,检查程序根目录")

   Me.Visible = True

   End Sub  

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

  Private Sub 捕获当前屏幕ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 捕获当前屏幕ToolStripMenuItem.Click

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

   End Sub  

  进入 退出程序ToolStripMenuItem_Click事件中  

  Private Sub 退出程序ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 退出程序ToolStripMenuItem.Click  

   NotifyIcon1.Visible = False

   '关闭系统

   Me.Close()

  End Sub

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

  

用VB.net2008编写屏幕抓捕程序和软件的实例教程 b2b软件

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

   

用VB.net2008编写屏幕抓捕程序和软件的实例教程 b2b软件

  

  

  

用VB.net2008编写屏幕抓捕程序和软件的实例教程 b2b软件

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



作者: 信息发布软件    时间: 2017-5-5 14:48
vb.net2008 启动画面专用类

Namespace My
    ''' <summary>
    ''' MyApplication
    ''' </summary>
    ''' <remarks>MyApplicationクラス</remarks>
    ''' <history>
    '''  [] 2011/11/01 Created
    ''' </history>
    Partial Friend Class MyApplication

        Protected Overrides Sub OnCreateMainForm()

            Try
                'Configファイルからシステムの情報を保存する
                Configuration.PSb_SaveSystemInfo()

                '起動画面を選択する
                If Utility.PFn_NullToString(Configuration.PSb_GetTestWindowFlg()).Equals("1") Then
                    Me.MainForm = Global.GRP.TestForm
                Else
                    Me.MainForm = Global.GRP.メインメニュー_Flash
                End If

            Catch ex As Exception
                'LOGファイルを出力する
                Global.GRP.Utility.PSb_WriteLOGFile(3, ex.Message)

                Me.MainForm = Global.GRP.メインメニュー_Gif
            End Try
        End Sub
    End Class
End Namespace



作者: qiaozong01    时间: 2017-5-5 14:48
及时做出评价,系统默认好评!
作者: 信息发布软件    时间: 2017-5-5 14:50
打开 Visual Studio 2008在文件 (File) 菜单上,单击新建项目 (New Project)。 在新建项目 (New Project) 对话框的模板 (Templates) 窗格中,单击 Windows 应用程序(Windows Application)。单击确定 (OK)

窗体应用技巧一,创建浮动窗体。

  创建新工程后,选择Form1窗体,添加Timer1和Timer2控件。为窗体选择一个好看的背景,当然你也可以使用系统默认的背景。
进入代码编辑器,输入代码:
Public Class Form1
    Inherits System.Windows.Forms.Form  
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim pos As Point = New Point(100, 50) '设置窗体初始位置
        Me.DesktopLocation = pos
        Timer1.Interval = 10 '设置Timer的值
        Timer1.Enabled = True
        Timer2.Interval = 10
        Timer2.Enabled = False
    End Sub


  进入Timer1_Tick事件
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim pos As Point = New Point(Me.DesktopLocation.X + 2, Me.DesktopLocation.Y + 1) '窗体左上方横坐标的timer1加
        If pos.X < 600 Or pos.Y < 400 Then
            Me.DesktopLocation = pos
        Else
            Timer1.Enabled = False
            Timer2.Enabled = True
        End If
    End Sub




  进入Timer2_Tick事件
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick

        Dim pos As Point = New Point(Me.DesktopLocation.X - 2, Me.DesktopLocation.Y - 1) '窗体的左上方横坐标随着timer2减一


  If pos.X > 100 Or pos.Y > 50 Then
            Me.DesktopLocation = pos
        Else
            Timer1.Enabled = True
            Timer2.Enabled = False
        End If
    End Sub



  创建完成后我们来运行程序测试一下,测试成功,程序在屏幕中不断地来回走动了。

  窗体应用技巧二,创建透明的窗体。

  创建新工程后,选择Form1窗体,添加Label1、TrackBar1、Timer1控件。为了突出效果为窗体选择一个好看的背景。

  相关的属性设置如下:
TrackBar1 Value属性:
TickFrequency: 属性:
Maximum属性: 100
10
100
Label1 Text属性: 选择窗体的透明度:
Timer1 Interval属性: 100

  进入代码编辑器,输入代码:

  首先进行声明:
Public Class Form1
    Inherits System.Windows.Forms.Form
    Dim tps As Integer
Dim bol As Boolean


  进入TrackBar1_Scroll事件
Private Sub TrackBar1_Scroll(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
        Me.Opacity = TrackBar1.Value / 100
        Label1.Text = "窗体透明度:" & CStr(Me.Opacity * 100) & "%"
End Sub


  进入Timer1_Tick事件
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If bol = False Then
            tps = tps + 1
            Me.Opacity = tps / 100
            If Me.Opacity >= 1 Then
                Timer1.Enabled = False
                bol = True
            End If
        Else
            tps = tps - 1
Me.Opacity = tps / 100
            If Me.Opacity <= 0 Then
                Timer1.Enabled = False
                bol = False
            End If
        End If
    End Sub


  进入Form1_Load事件
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Enabled = True
End Sub

  进入Form1_Closing事件
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        Timer1.Enabled = True
        If MsgBox("你确实要关闭窗体吗?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
            e.Cancel = False
        Else
            Timer1.Enabled = False
            Me.Opacity = 1
            tps = 100
            bol = True
            e.Cancel = True
        End If
End Sub

  创建完成后我们来运行程序测试一下,测试成功,程序窗体是不是变得透明了,通过调节滚动条我们甚至可以使得窗体消失达到完全隐形的目的。这是不是很神奇呢?



作者: daoke    时间: 2017-5-6 19:35
建站,方便快捷,有专人指导,还是很不错的!
作者: 1124789174    时间: 2017-5-6 19:57
说。。。
作者: niyaoz1    时间: 2017-5-9 03:09
没看完~~~~~~先顶,好同志
作者: yiyi2014    时间: 2017-5-10 09:41
铺一天销量也就几十票装修完发布后店铺的转化率高了很多。,提升了太多销量大概有3倍吧。视觉冲击效果强大起来
作者: asz111    时间: 2017-5-10 11:50
诚信的店铺,完全为客户考虑,我购买了PC端和电脑端模板,店家都很热心的帮忙解决问题店家基本都在线,很是尽职尽责,服务无忧,售后无忧,我是新店家,她帮了我很多。真心感谢!
作者: yirenzhuang    时间: 2017-5-10 12:00
务很好,设计的宝贝很漂亮我很满意,以后有需要还会合作
作者: lnzhanghao    时间: 2017-5-10 12:45
刚刚的…
作者: 大宝罗滴滴    时间: 2017-5-10 21:57
风格,质量很好,用着很方便,还会再来的
作者: xbaobeit    时间: 2017-5-12 17:38
平可以
作者: 武器    时间: 2017-5-15 17:14
家人不错值得购买超赞
作者: lnzhanghao    时间: 2017-5-16 13:13
蛋和27号技术服务真的很好,超赞,以后还找她们做网站
作者: nble002    时间: 2017-5-17 02:23
不错不错,您辛苦了。。。
作者: ebxly    时间: 2017-5-21 19:08
高大上了,服务很周到,能达到我想要的效果,设计后生意越来越好了!好开心啊!
作者: bysqb    时间: 2017-5-22 14:33
,整体满意,好评
作者: yerface    时间: 2017-5-26 20:16
,谢谢老板,天超值了,很实用
作者: jh134724    时间: 2017-5-30 08:06
模板真心的不错显示工整完美大方使用简单方便之前用的是淘宝基础版枯燥不堪用了这模板后看自己的铺面心情都不样呵呵!店家的服务也非常周到有问必答而且非常有耐心省时省事省心。




欢迎光临 信息发布软件,b2b软件,广告发布软件 (http://postbbs.com/) Powered by Discuz! X3.2