中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [分享]关于PrintScreen与屏幕截图
作者:
标题: [分享]关于PrintScreen与屏幕截图 上一主题 | 下一主题
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『楼 主』:  [分享]关于PrintScreen与屏幕截图

我们很多时候想要截屏,全屏或者当前窗口。

会VBS的都知道有个 SendKeys 方法能够发送按键,于是试着用它发送 PrintScreen,结果不行,官方文档中也说了就这个键不能发送,原因好像是没有与之对应的ASCII码。

因此纯的 VBS 是不能完成这个功能的。

但是如果机器上装了Microsoft Office Word (非绿色版)的话,系统中会多出许多能用的对象,其中有一个叫 Word.Basic ,它也有一个 SendKeys 方法,VBS利用这个方法就能够发送 PrintScreen :
CreateObject("Word.Basic").SendKeys "{1068}"
更好记的
CreateObject("Word.Basic").SendKeys "{PRTSC}"
如果要截取当前活动窗口的话就用  "%{PRTSC}"
至于如何保证在截取的时候保证那个活动窗口还是当前的活动窗口,可以有很多办法,比如你加入一个等待时间(WScript.Sleep)双击这个脚本后再切换到那个窗口,或者脚本是循环执行间隔一定时间截取一次,或者你知道哪个窗口的标题的话在前加上 CreateObject("WScript.Shell").AppActivate "标题或结尾的字符串" 激活它之后马上截取。。。

这样就能够模拟键盘按下PrintScreen,并且把图像信息保存在剪贴板中。
很遗憾,我们并不能在桌面或文件夹中按 Ctrl+V 把它粘贴下来,你想想,你要得到的是特定格式的图片(jpg、bmp、gif等),而剪贴板中的只包含像素信息,无法转换的,只能粘贴到能编辑或者显示图片的应用程序内,比如Word、画图(mspaint.exe)、写字板(write.exe)等,然后再做处理。
(有方法能将剪贴板的数据保存为图片文件,但不是VBS可以用的,或者又要使用PowerPoint.Application,因此不关注。)

第三方命令行工具 NirCMD 也有个屏幕打印功能,而且很方便,可以将截图保存为多种格式图片文件(.bmp, .gif, .png, .jpg, .tiff )。
(Windows XP/2003/Vista ,GDI+ is required)
截屏主监视器:
nircmd savescreenshot "D:\temp\Monitor1.jpg"
截屏所有监视器:
nircmd savescreenshotfull "D:\temp\Monitors.png"
截屏当前活动窗口:
nircmd savescreenshotwin "D:\temp\Window.bmp"
这里活动窗口的处理思路与VBS也很相似,如
@echo off
nircmd win activate ititle "标题包含的字符串"
nircmd savescreenshotwin "D:\temp\Window.gif"
参考资料:
How to do a screen capture using VBA --- http://word.mvps.org/FAQS/MacrosVBA/PrtSc.htm
Print Screen in VBScript --- http://www.visualbasicscript.com/m53752.aspx
NirCMD --- http://www.nirsoft.net/utils/nircmd.html

   此帖被 +12 点积分      点击查看详情   
评分人:【 moniuming 分数: +5  时间:2010-1-26 16:34
评分人:【 s11ss 分数: +7  时间:2010-1-27 08:36




┏━━━━━━┓
┃据说是李先生┃
┠──────┨
┃*ntRSS┃
┗━━━━━━┛
2010-1-26 14:30
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 2 楼』:  

一直都用nircmd,呵呵...

2010-1-26 16:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: