VBS实现截图功能_vbs

百度说,VBS很难截图,倒是有个利用第三方软件的方法,调用该软件,然后该软件会自动截图。

但这样,违背了用VBS的初衷。

用VBS就是因为它方便快捷。要是用第三方软件的话,干脆我们直接用VB写一个好了。

那么...只好调用Excel用VBA去做了。
有什么更好的方法吗?

在度娘上翻了很久,没有什么好方法,因为实现截屏原本就不是微软设计vbs的初衷,更多的扩展功能是使用者的意愿,所以才会有第三方的出现,实际vbs调用vba也是这种方式,利用的是vba能调用API的特性,查了下网上的代码,调用的是USER32模块中的keybd_event函数实现的截屏

最终一位大神给出了以下代码:

'VBS截屏.vbs
' Win7x64 测试通过(已安装Word2007):
'参考:
' http://qtp.blogspot.com/2010/02/screenshot-vbscript.html
' http://www.fixitscripts.com/problems/take-screenshot-of-current-user-s-session

With CreateObject("Word.Basic")
 .Sendkeys "{prtsc}"
 .FileQuit '.AppClose
End With

Msgbox "已将屏幕截取到剪贴板。", vbSystemModal+vbInformation, WScript.ScriptName

真是艰难啊。

最后给大家一个更加神奇的方法

data = "4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000C00000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000450E6EDA016F0089016F0089016F0089016F0189006F008963701389026F0089E9700B89006F008952696368016F008900000000000000000000000000000000504500004C01010017E773460000000000000000E0000F010B01060000000000000400000000000080110000001000000010000000004000001000000002000004000000000000000400000000000000002000000002000000000000020000000000100000100000000010000010000000000000100000000000000000000000F012000028000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000080000000000000000000000000000000000000000000000000000002E646174610000003A030000001000000004000000020000000000000000000000000000400000C0000000000000000000000000000000000000000000000000000000000000000020130000000000004D657373616765426F784100476574436F6D6D616E644C696E6541006B657962645F6576656E74004578697450726F6365737300467265654C696272617279004C6F61644C6962726172794100000000757365723332000053637265656E4361746368204279205368696C7978000000B3C9B9A6BDABD7A5CDBCB1A3B4E6B5BDCFB5CDB3BCF4CCF9B0E5000000000000000000000000000083EC0C535556578B7C24208B473C03C78138504500000F858E0000008B48788B44392003CF03C7894C2418C7442420000000008B491885C9894C2414766C8B6C2424894424248A4D008BD181E2FF00000089542410EB048B5424108B008BCD8D343833C08A062BC275248A55002BF584D274178A51014133C08BDA8A040E81E3FF0000002BC374E7EB0485C074268B4C24208B4424248B5424144183C0043BCA894C24208944242472AD5F5E5D33C05B83C40CC38B4424188B5424208B48248B401C8D0C5133D2668B14398D0C908B043903C75F5E5D5B83C40CC39090909090558BEC81EC48010000535657B906000000BE781040008D7DBCF3A566A5A4B905000000BE601040008D7DD8A158104000F3A5668B0D5C1040008A155E10400066A58945F466894DF88855FAC745FC0000000064A1180000008945FC8B45FC68481040008B48308B510C8B420C8B088B118B721856E8A7FEFFFF683C104000568BF8E89AFEFFFF6830104000568945FCE88CFEFFFF83C4188945F08D45F450FFD78BD8682410400053E873FEFFFF8B3D0010400083C4086A006A006A006A2CFFD76A006A026A006A2CFFD7681410400056E84BFEFFFF8BD0B94000000033C08DBDB9FEFFFFC685B8FEFFFF0083C408F3AB66ABAAFFD28BF883C9FF33C08D95B8FEFFFFF2AEF7D12BF98BC18BF78BFAC1E902F3A58BC833C083E103F3A48DBDB8FEFFFF83C9FFF2AEF7D1498A8C0DB7FEFFFF80F973742180F953741C680810400053E8DAFDFFFF83C4088D4DD88D55BC6A4051526A00FFD053FF55FC6A00FF55F05F5E5B8BE55DC39090909090909090901813000000000000000000002E1300000010000000000000000000000000000000000000000000002013000000000000AA026B657962645F6576656E74005553455233322E646C6C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"

TargetFileName = "C:\tmp.exe"

With CreateObject("ADODB.Stream"):.Type = 1:.Open:.Write StrToByte(data):.SaveToFile TargetFileName, 2:.Close:End With

WScript.CreateObject("WScript.Shell").Run TargetFileName & " /s",,true
WScript.CreateObject("WScript.Shell").Run "cmd /c del " &TargetFileName,vbhid
MsgBox "当前屏幕图象已经拷贝到系统剪贴板", 64, "信息"

Function StrToByte(str)
    Set xmldoc = CreateObject("Microsoft.XMLDOM")
    xmldoc.loadXML "<?xml version=""1.0""?>"
    Set pic = xmldoc.createElement("pic")
    pic.dataType = "bin.hex"
    pic.nodeTypedValue = str
    StrToByte = pic.nodeTypedValue
End Function

以上的思路是把简短的第三方工具集合到VBS脚本中就可以实现更丰富的功能了

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索vbs
截图
java实现截图功能、js实现截图功能、js实现qq截图功能、jquery实现qq截图功能、android 截图功能实现,以便于您获取更多的相关知识。

时间: 2025-01-08 14:39:37

VBS实现截图功能_vbs的相关文章

用vbs实现cmd功能_vbs

on error resume next do while d<>"520" d=inputbox("请输入命令,多个命令用&连接.关闭该VB窗口命令520") set q=createobject("scripting.filesystemobject") set a=WScript.CreateObject("WScript.Shell") a.run "%Comspec% /c"&

win7系统如何使用360极速浏览器截图功能

  win7系统如何使用360极速浏览器截图功能.本文小编分享win7系统如何使用360极速浏览器截图?现在截图的方法有很多种,比如:QQ截图,按Print等等,大家肯定还不知道360极速浏览器也有截图功能,那么win7系统如何使用360极速浏览器截图功能,截图之后的图片又保存在哪里呢?接下去小编和大家分享win7系统使用360极速浏览器截图功能的方法. 解决步骤: 1.在360极速浏览器右上角点击"四色方格"的图标,打开"扩展中心"; 2.在右侧的搜索框中输入&q

C#模仿QQ截图功能

前阵子改了段C#截图功能的代码,现贴上来希望对大家有用 主文件 CaptureScreenForm.cs using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Runtime.InteropServices; namespace CaptureScreen{ //

留住永恒的画面 暴风影音截图功能体验

说到媒体播放器的截图功能,相信很多朋友都会说,这个功能太常用了.每当看到有什么精彩的画面想和朋友们分享的时候,或者是自己DIY一些图片.海报或者搞笑图片的时候,截图功能是绝对的利器.但由于大多数用户对视频播放的内部流程和基本知识比较陌生,加上第三方屏幕截图工具的流行,会有部分用户不习惯直接用播放器进行截图.其实这是一种本末倒置的行为--无论从截图区域的精确性还是从截取图像的精细度来看,都是播放器本身对播放内容进行截图的效果最好. 下面,笔者就以目前最流行也是最多人使用的老牌播放器暴风影音为例,来

“截”出精彩-简单实用的Lava截图功能

Lava-Lava的截图功能一直是网友们所津津乐道的,不仅操作方便,而且还相当实用,特别是它的高级截屏功能,让你在截图后无须再打开图片处理软件,就可以直接编辑,加框或者标注等. 有了Lava-Lava,我们就可以随时随地的截图发给好友,比如看到网页上的一个美图,或者一个超级长而复杂的网页链接,甚至是视频时候的对方形象或者我的自拍照.而且,在写Word文档的时候,如果我们需要截图的话,可以直接用Lava-Lava的截图复制粘贴到Word文档里面,好省力吧!下面就跟随我一步一步了解lava-lava

用C#实现截图功能(3)(类似QQ截图)

2,建立截图主窗口 核心类MyRectangle已经完成,剩下的工作就是使用改类实现预想的截图功能. 用VS2005 新建Project,命名为ScreenCutter.将主窗口命名为MainForm,新建一个窗口命名为ScreenBody,将其 ShowInTaskbar属性设置为False,TopMost属性设置为True,FormBorderStyle属性设置为None,在 ScreenBody上添加一个panel控件panel1,设置BackColor属性为蓝色,在panel1上添加相应

搜狗浏览器怎么截图?截图功能在哪

  搜狗浏览器怎么截图截图功能在哪 打开搜狗浏览器后截图功能一般系统默认安装好在工具栏显示的,需要截图只要点击<截图>然后选出截图的区域后点击<保存>再选择好保存在电脑哪个文件夹中最后点击<保存>这样就截图保存成功了. 如果打开搜狗浏览器后工具栏中没有截图你可以点击<工具>然后再进入<获取更多工具>. 在搜狗浏览器应用中心界面搜索<截图>再点击<安装>在弹出的安装完毕后显示在工具栏上选择<是>. 这样搜狗浏览器

傲游3浏览器截图功能体验

如今,图片已经成为十分常用的网络表达方式.傲游3浏览器推出了全新截图功能,创新性的加入了气泡.模糊.荧光笔等工具,让网民能够分享更多的"真相"给好友. 使用简单 傲游3浏览器截图功能使用简单,既可以点击浏览器右上角的截图按钮启用,也可以使用快捷键"Ctrl+F1"和"Ctrl +F2"来启用.傲游3截图快捷键属于全局快捷键,无论傲游3浏览器是否为当前窗口,均可使用. [图一] 在区域截图功能中,用户还可以对图片进行适当的编辑,比如添加说明.标识重

傲游浏览器截图功能介绍

如今网络信息瞬息万变,图片已经成为十分常用的网络表达方式.你是否有很多时候,想要把当前精彩的画面保留下来?当你的微博粉丝涨到99.999的时候是不是会想截图留念呢?当有人对你说"无图无真相"的时候你是否在烦恼如何展示"真相"?傲游浏览器3的强大截图功能,制作"真相"轻而易举,让你把握当下,保留每一刻精彩瞬间. 傲游浏览器3最新版官方下载地址:http://www.maxthon.cn/mx3/ 截屏抓图 轻松实现 傲游3的截图功能使用简单,既可以