VB NET屏幕截图方法2则

合集下载

VB中PaintPicture图形方法的使用

VB中PaintPicture图形方法的使用

VB中PaintPicture图形方法的使用(1)出处:eNet学院责任编辑:zwg[01-12-13 18:17] 作者:enet 在VB中提供了完善的做图方法, 可以在窗体或图形框中绘制各种图形, 其中提供了一个方便的图像处理命令即:PaintPicture, 此命令的功能与WINDOWS API 函数BitBlt类似,但由于不用做API函数说明,并且有它独特的功能,所以更有它的方便之处, 使用它可以完成很多图像的特殊处理工作。

一、语法格式:PaintPicturePic,destX,destY,destWidth,destHeight,scrX,scrY,scrWidth,scrHeight 其中Pic:为图片对象, 如图形框Picture等;destX,destY:目标图像位置;destWidth,destHeight:目标图像尺寸;scrX,scrY:原图像的裁剪坐标;scrWidth,scrHeight:原图像的裁剪尺寸;从以上格式可以看出,此命令的功能就是把一个源图像资源任意复制到指定的区域,并且通过改变参数destWidth与destHeight值,还可以改变复制后的图像的尺寸,实现放大或缩小图像显示, 甚至可以置这两个属性为负值, 这样可使目标图像在水平方向翻转,实现特殊效果的图像显示。

二、应用举例1.墙纸的制作所谓的墙纸, 就是用一个小尺寸的图像连续在一个区域显示, 形成规则的重复图像, 也称为图像的平铺显示,利用“PaintPicture"命令可以方便的完成此工作, 即用一个固定的图像资源多次连续复制到窗口中; 复制过程中必须准确计算下一图像的起始位置; 显示过程中可采取两种方法, 第一种方法可置源图像资源即图形框的AutoSize属性为真, 并且显示过程中按源图像的实际尺寸复制, 这是正常的图像平铺显示; 还有一种方法就是通过置AutoSize 属性为假, 然后改变图形框的尺寸, 或者直接修改目标图像的尺寸, 这样可实现放大或缩小图像的平铺显示。

VB使用技巧二.

VB使用技巧二.

作者:white 日期:99-6-3 下午 07:52:05 捕捉 MoueExit 事件 MouseDown、MouseUp、MouseMove。

VB 似乎提供了很好的 Mouse 事件。

但好象还缺少什么!对!还差 MouseExit(鼠标移出)事件。

在 VB 中,我们要捕捉 MouseExit 事件,必须用 API 函数: Private Declare Function SetCapture Lib "user32" (ByVal hWnd As Long As Long Private Declare Function ReleaseCapture Lib "user32" ( As Long 然后,我们可以在控件(以 Picture1 为例)的 MouseMove 事件上加上以下代码: Dim MouseExit As Boolean MouseOver = (0 <= X And (X <= Picture1.Width And (0 <= Y And (Y <= Picture1.Height If MouseExit Then ........ SetCapture Picture1.hWndElse ........ ReleaseCapture End If [返回技巧索引] -------------------------------------------------------------------------------- 处理多个具有相同要求的控件我们往往有时需要处理多个具有相同特性的控件,如:把 100 个 Text 及 Label 的内容加起来。

这时,我们可以使用下面的技巧:1、如果是同一种类型的控件,我们可以使用控件组达到目标。

2、如果不是同一类型控件,控件组就无法使用,这时,我们还可以利用控件的 Tag 属性,我们可以把每个控件设置一个 Tag 标志。

vb 抓包、截包、发包

vb 抓包、截包、发包

目录第一章:截包知识,本章主要介绍用HttpWatch软件截取网络数据包的方法及技巧第二章:发包知识,本章主要介绍数据包的构成第三章:三大利器的使用,本章主要介绍vb使用xmlhttp对象、webbrowser控件、inet控件进行Post发包、Get发包的方法第一章本文要用到的截包工具是HttpWatch,其他软件使用方法都差不多这里不再阐述。

软件下载地址:/source/2688506<只要注册个CSDN号就能下载了没有积分要求的,下载后请注意压缩包内的httpwatch.lic为授权文件,安装完成后把httpwatch.lic复制到安装目录里面>安装完成后打开IE-工具-HttpWatch(IE6的直接能在主界面看到不用进工具里了),打开该软件,如图所示:点击右上角的,软件界面会分离出另外一个窗口我来介绍下按钮的功能, 平常用到的就3个按钮,代表开始截取、停止截取、清除截取的数据再来介绍下面的界面:平常用到的是Qverview、Content、Stream,Qverview的可以查看Post过去的详细目标地址,Content查看请求回来的返回值,Stream查看数据包信息!截取封包:在请求页面前按下按钮开始截取封包,请求完毕后按下按钮停止截取封包.想要清除截取的数据可以按下按钮.数据查看:选中的地址就是Post提交的目标地址Content查看返回的网页源码Stream查看数据内容,详细的数据结构将在下章介绍第二章先发一段数据,我们来分析它<登陆百度的包>POST /?login HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */* Referer: https:///?login&tpl=mnAccept-Language: zh-cnContent-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 663; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)Host: Content-Length: 236Connection: Keep-AliveCache-Control: no-cacheCookie:tpl_ok=&next_target=&tpl=mn&skip_ok=&aid=&need_pay=&need_coin=& pay_method=&u=http%3A%2F%%2F&return_method=get&more _param=&return_type=&psp_tt=0&password=123465&safeflg=0&username=sunshi nebean&verifycode=&mem_pass=on关于Http头的构成我不阐述,详见:/absky_cxb/blog/item/f28065017032760a738da5cb.html这里主要讲Post包的构成及比较重要的Http头参数1.Http头里的Referer参数,简单的说就是来路,然后目标服务器能知道你这个Http请求是哪个页面请求过去的,有些服务器就是判断来路的所以这个参数比较重要2.Http头里的Content-Type参数,提交的是网页信息可以是application/x-www-form-urlencoded,假如提交图片信息这个参数也会随之变成data3.Post的包参数全部用&符号隔开的,=号后面的是参数的值。

在VB.NET中进行抓屏

在VB.NET中进行抓屏

在中进行抓屏Public Class Form1Inherits 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 ThenIf Not (components Is Nothing) Thencomponents.Dispose()End IfEnd IfMyBase.Dispose(disposing)End Sub’Windows 窗体设计器所必需的Private components As ponentModel.IContainer ’注意:以下过程是 Windows 窗体设计器所必需的’可以使用 Windows 窗体设计器修改此过程。

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

Friend WithEvents Button1 As System.Windows.Forms.ButtonFriend WithEvents Timer1 As System.Windows.Forms.TimerFriend WithEvents PictureBox1 As System.Windows.Forms.PictureBoxFriend WithEvents Button2 As System.Windows.Forms.Button<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()ponents = New ponentModel.Container Me.Button1 = New System.Windows.Forms.ButtonMe.Timer1 = New System.Windows.Forms.Timer(ponents)Me.PictureBox1 = New System.Windows.Forms.PictureBox Me.Button2 = New System.Windows.Forms.ButtonMe.SuspendLayout()’’Button1’Me.Button1.ForeColor = System.Drawing.Color.BlackMe.Button1.Location = New System.Drawing.Point(8, 312) = "Button1"Me.Button1.Size = New System.Drawing.Size(112, 32)Me.Button1.TabIndex = 0Me.Button1.Text = "抓屏"’’PictureBox1’Me.PictureBox1.Location = New System.Drawing.Point(8, 8) = "PictureBox1"Me.PictureBox1.Size = New System.Drawing.Size(392, 288) Me.PictureBox1.TabIndex = 4Me.PictureBox1.TabStop = False’’Button2’Me.Button2.ForeColor = System.Drawing.Color.BlackMe.Button2.Location = New System.Drawing.Point(264, 312) = "Button2"Me.Button2.Size = New System.Drawing.Size(112, 32)Me.Button2.TabIndex = 5Me.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)) = "Form1"Me.Text = "wgscd"Me.ResumeLayout(False)End Sub#End Region’中进行图象捕获,需要先引用一些API,以下是声明:Private Declare Function CreateCompatibleDC Lib "GDI32" (ByVal hDC As Integer) As IntegerPrivate Declare Function CreateCompatibleBitmap Lib"GDI32" (ByVal hDC As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer) As IntegerPrivate 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 IntegerPrivate Declare Function DeleteDC Lib "GDI32" (ByVal hDC As Integer) As IntegerPrivate Declare Function DeleteObject Lib "GDI32" (ByVal hObj As Integer) As IntegerDeclare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Integer) As IntegerConst 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 IntegerDim hBMP, hBMPOld As IntegerDim sw, sh As IntegerhDC = GetDC(0)hMDC = CreateCompatibleDC(hDC)sw = Screen.PrimaryScreen.Bounds.Widthsh = Screen.PrimaryScreen.Bounds.HeighthBMP = 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 = TrueEnd SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Button2.Enabled = FalseEnd SubDim ofd As New SaveFileDialogPrivate 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.ImageIf ofd.ShowDialog = DialogResult.OK Thenbmp.Save(ofd.FileName)End IfEnd SubEnd Class。

VBA与屏幕自动截图的应用方法

VBA与屏幕自动截图的应用方法

VBA与屏幕自动截图的应用方法随着信息技术的迅猛发展,图像和截图在我们的日常工作中起着越来越重要的作用。

对于需要频繁进行截图的用户来说,手动截图往往效率低下且不够准确。

在这种情况下,利用VBA (Visual Basic for Applications)编程语言来实现自动截图的方法就变得非常有吸引力。

VBA是一种宏语言,它可以与Microsoft Office软件整合,包括Excel、Word和PowerPoint等常用软件。

通过使用VBA,我们可以编写自定义的宏来实现各种自动化任务。

在本文中,将介绍如何利用VBA在Microsoft Office软件中实现自动截图的方法。

在开始介绍具体的应用方法之前,我们需要明确所需软件和工具。

首先,我们需要安装Microsoft Office软件,包括Excel、Word和PowerPoint。

其次,我们需要了解VBA编程语言的基础知识,以便能够编写自定义的宏。

为了实现自动截图的功能,我们可以利用VBA中的一些内置的对象和方法。

以下是具体步骤:1. 打开所需的Office软件(例如Excel)。

在工具栏中选择“开发工具”,然后选择“Visual Basic”选项。

这将打开VBA编辑器。

2. 在VBA编辑器中,我们可以创建一个新的宏(或者在已有的宏中添加代码)。

通过点击“新建”按钮,然后将下列代码粘贴到新的代码模块中:```Sub Screenshot()Dim ScreenshotPath As StringDim ScreenshotName As StringScreenshotPath = "C:\Screenshots\" '指定截图的保存路径ScreenshotName = "Screenshot" '指定截图的名称SendKeys "%{PRTSC}" '按下“Alt + Print Screen”快捷键Application.Wait (Now + TimeValue("00:00:01")) '等待1秒钟以确保截图已保存到剪贴板With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") '打开Paint应用程序.invokeverb "Paste" '将剪贴板中的内容粘贴到Paint中Application.Wait (Now + TimeValue("00:00:01")) '等待1秒钟以确保截图已粘贴到Paint中.invokeverb "SaveAs", ScreenshotPath & ScreenshotName & ".png" '保存截图为PNG格式.invokeverb "FileExit" '关闭Paint应用程序End WithEnd Sub```在上述代码中,我们首先指定了截图保存的路径和名称。

VB.NET中的图形处理

VB.NET中的图形处理

中的图形处理的图形处理需要五个环节:第⼀:定义绘图对象Dim g As Graphics '定义绘图对象 g第⼆:定好绘图的区域g = Me.CreateGraphics '将窗体指定为绘画区域g = PictureBox1.creategraphics '将图⽚框指定为绘画区域第三:定义绘图⼯具绘图⼯具分三类,如果是画边型的就定义画笔 如果是填充区域型的就定义画刷 如果是画⽂字就需定义字刷对象举例如下:Dim p As New Pen(Color.Red, 3) '定义颜⾊是红⾊,宽度为3个单位的画笔⼯具Dim sb As New SolidBrush(Color.Purple) '定义颜⾊是紫⾊的画刷⼯具Dim f As New Font("⾪书", 8, FontStyle.Regular) '定义刷⽂字的对象第四:绘制图型绘制直线:g.DrawLine(画笔,起点,终点)绘制矩形:⽅法1: g.DrawRectangle(画笔, 左上⾓横坐标,左上⾓纵坐标, 宽度, ⾼度)⽅法2: g.DrawRectangle(画笔, 矩形区域对象)举例:pt1 = New Point(10, 20) '设置点对象s = New Size(60, 50) '确定⼤⼩对象的范围:宽 60 ⾼ 50rect = New Rectangle(pt1, s) '确定矩形区域的范围:左上⾓横坐标10,纵坐标20,宽60,⾼50 g.DrawRectangle(p, rect) '画矩形,或如下直接书写g.DrawRectangle(Pens.PaleGoldenrod, 10, 20, 60, 50)第五:释放资源p.Dispose() '释放画笔对象g.Dispose() '释放绘图对象 。

截屏技巧

截屏技巧

屏幕截取技巧:教你十种屏幕抓取方法说起屏幕截图,相信大家都不会陌生:随意翻翻每期的《电脑报》,但是对于刚刚接触电脑的朋友来说,对如何进行抓图还摸不着头脑,以为需要什么高深的技术或什么专业的软件,甚至还以为需要动用DC来帮忙呢。

其实抓图的方法有很多种,但种种都很简单,看了下面的介绍,相信你也能抓出“美”图来!一、PrintScreen按键+画图工具不论你使用的是台式机还是笔记本电脑,在键盘上都有一个PrintScreen按键,但是很多用户不知道它是干什么用的,其实它就是屏幕抓图的“快门”!当按下它以后,系统会自动将当前全屏画面保存到剪贴板中,只要打开任意一个图形处理软件并粘贴后就可以看到了,当然还可以另存或编辑。

提示:PrintScreen键一般位于F12的右侧。

二、抓取全屏抓取全屏幕的画面是最简单的操作:直接按一下PrintScreen键,然后打开系统自带的“画图”(也可以使用PS),再按下Ctrl+V即可。

该处没有什么技术含量,只是要记住防止某些“不速之客”污染了画面,比如:输入法的状态条、“豪杰超级解霸”的窗口控制按钮等等。

提示:提醒想投稿的朋友:这样的画面比较大,一般的报纸或杂志要求300像素×300像素,最大不超过500像素×500像素(当然特殊需要除外),这就需要到PS或ACDSee中进行调整。

三、抓取当前窗口有时由于某种需要,只想抓取当前的活动窗口,使用全屏抓图的方法显然不合适了。

此时可以按住Alt键再按下PrintScreen键就可只将当前的活动窗口抓下了。

四、抓取级联菜单在写稿的过程中,免不了“以图代文”,特别是关于级联菜单的叙述,一张截图胜过千言万语。

但是,若想使用抓取当前窗口的方法来抓级联菜单就不行了:当按下Alt键以后菜单就会消失。

此时可以直接按下PrintScreen键抓取全屏,然后粘贴到图形处理软件中进行后期的处理。

如果使用画图工具,就可以使用方形选定工具将所需要的部分“选定”并“剪切”,然后按下Ctrl+E打开“属性”界面将“宽度”和“高度”中的数值设的很小,最后再粘贴并另存即可(如图1)。

用VB6屏幕截图

用VB6屏幕截图

用VB6.0实现,本人vb比较菜,所以最好是完整代码,也希望能附上注释,在这里多谢了~问题补充:借助外部工具比较简单,我想用代码实现,希望高手帮一下,非常感谢!!辛语辛辰,savepicture可以保存图片,不过我想保存时主窗体中的一部分,并且上面可能有控件,不知道还有什么方法吗?最佳答案Dim t As BooleanDim f As BooleanPrivate Sub Form_Load()Pic.Height = 100Pic.Width = 100Pic.AutoRedraw = TrueEnd SubPrivate Sub Pic0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)If t = False ThenPic.Left = XPic.Top = YEnd IfIf Button = 1 And f = False Thent = TruePic.Width = X - Pic.LeftPic.Height = Y - Pic.TopPic.PaintPicture Pic0.Picture, 0, 0, , , Pic.Left, Pic.Top, Pic.Width, Pic.Height End IfEnd SubPrivate Sub Pic0_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 1 Then f = TruePic2.Picture = Pic.ImageIf Button = 2 Thent = Falsef = FalsePic.Width = 100Pic.Height = 100End IfEnd Sub注释不用了吧,用SavePicture 语句保存图片说详细点,它截取的是背景vb 屏幕区域截图悬赏分:0 |解决时间:2008-3-8 19:24 |提问者:開始習慣孤單例如我要截下屏幕上728,292,766,305处的图并保存,怎样写代码代码越短越好最佳答案Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As LongPrivate Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Const Srccopy = &HCC0020Private Sub Picture1_Click()StretchBlt Picture1.hdc, 0, 0, 766 - 728, 305 - 292, GetDC(0), 728, 292, 766 - 728, 305 - 292,Srccopy'自己写保存图片的过程吧~End SubPictureBox的ScaleMode要设置为pixel.你试试这个行不~PS 这个问题我好像见过?_?通过VB的BitBlt API来实现窗口局部区域截图悬赏分:150 |解决时间:2010-10-21 22:52 |提问者:诚信欢迎你我想将这个代码写成一个函数形式,保存为DLL文件自己用SavePicture方法可以保存图片但是,保存为DLL的时候报错说未定义什么我想各位帮忙想想通过什么方法能保存为图片问题补充:此问题通过交换方法已经解决了,3楼给的方法就是我说的那方法不过用到了插件故无法生成DLL吧,不过还是非常感谢最佳答案这个问题我以前也弄过,后来卡在你这个问题同样的地方没弄下去,现在看到你的问题,很有感触,准备再弄一下看看,没想到成功了哈,下面是代码,实现了后台截图并且保存,可以用到一些游戏脚本里面哈。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

屏幕截图方法2则
' 根据VB6代码改的,经过本人优化。

请先导入Drawing类库。

DeclareFunction SelectObject Lib"gdi32" (ByVal hdc AsInteger,
ByVal hObject AsInteger) AsInteger
DeclareFunction BitBlt Lib"gdi32" (ByVal hDestDC AsInteger, ByVal x AsInteger, ByVal y AsInteger, ByVal nWidth AsInteger,
ByVal nHeight AsInteger, ByVal hSrcDC AsInteger, ByVal xSrc AsInteger, ByVal ySrc AsInteger, ByVal dwRop AsInteger) AsInteger DeclareFunction CreateCompatibleBitmap Lib"gdi32"(ByVal hdc AsInteger, ByVal nWidth AsInteger, ByVal nHeight AsInteger) AsInteger DeclareFunction CreateDC Lib"gdi32"Alias"CreateDCA"
(ByVal lpDriverName AsString, ByVal lpDeviceName AsString,
ByVal lpOutput AsString, ByRef lpInitData AsInteger) AsInteger DeclareFunction CreateCompatibleDC Lib"gdi32" (ByVal hdc AsInteger) AsInteger
Function GetSerPic(OptionalByVal BitWidth AsInteger = -1, OptionalByVal BitHeight AsInteger = -1) As Image
If BitWidth<0Then BitWidth = puter.Screen.Bounds.Width
If BitHeight<0Then BitHeight = puter.Screen.Bounds.Height
Dim Bhandle, DestDC, SourceDC As IntPtr
SourceDC = CreateDC("DISPLAY", Nothing, Nothing, 0)
DestDC = CreateCompatibleDC(SourceDC)
Bhandle = CreateCompatibleBitmap(SourceDC, BitWidth, BitHeight) SelectObject(DestDC, Bhandle)
BitBlt(DestDC, 0, 0, BitWidth, BitHeight, SourceDC, 0, 0, &HCC0020) Return Image.FromHbitmap(Bhandle)
End Function
' 最近学了Graphics类的画图方法,所以无聊就写了两个小程序。

' 这一例是不使用系统API就可以进行屏幕截取的代码。

PublicClass frmMain
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Hide()
Dim p1 AsNew Point(0, 0)
Dim p2 AsNew Point(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
Dim pic AsNew Bitmap(p2.X, p2.Y)
Using g As Graphics = Graphics.FromImage(pic)
g.CopyFromScreen(p1, p1, p2)
Me.BackgroundImage = pic
EndUsing
Me.Show() End Sub End Class。

相关文档
最新文档