找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18173|回复: 2

[问题求助] xp或win7系统下,VBS如何实现循环间歇性屏幕截图并以指定格式命名保存到指定目录下

[复制链接]
发表于 2016-8-2 06:17:25 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-8-2 12:22 编辑

xp或win7系统环境下,VBS定时截屏,并保存到指定目录下。如何实现?
比如定时3秒钟全屏截屏,所有截屏文件全部保存到c:\test目录下。
文件名中命名规则是:20160802-061840(年代日期-时间)

设置变量:jiang(以秒计数)
设置变量:mulu(截屏图片保存目录)
截屏代码参考
http://www.bathome.net/redirect. ... 4369&ptid=37237

评分

参与人数 1PB -30 收起 理由
pcl_test -30 未按版规发帖

查看全部评分

发表于 2016-8-2 22:16:05 | 显示全部楼层
推荐使用第三方命令行截图软件。

CmdCapture 命令行截图软件:http://www.bathome.net/thread-41237-1-1.html
发表于 2016-8-3 14:12:46 | 显示全部楼层
本帖最后由 pcl_test 于 2017-4-16 19:48 编辑
  1. Set ws = CreateObject("Wscript.Shell")
  2. Set dict = WSH.CreateObject("Scripting.Dictionary")
  3. Set fso = CreateObject("Scripting.FileSystemObject")

  4. dstFolder = "."    '指定截图保存目录,默认为当前目录下
  5. ext = "jpg"    '指定截图文件格式,支持jpg/gif/png/bmp
  6. interval = 1000    '指定截屏间歇时间(毫秒)

  7. If Left(ext, 1) = "." Then ext = Right(ext, 3)
  8. If Right(dstFolder, 1) <> "" Then dstFolder=dstFolder&""
  9. arr = Split(dstFolder, "")
  10. arrFolder = arr(0)
  11. For i = 1 To UBound(arr) -1
  12.     arrFolder = arrFolder & "" & arr(i)
  13.     If Not fso.FolderExists(arrFolder) Then fso.CreateFolder(arrFolder)
  14. Next

  15. dict.Add "jpg", "ImageFormat.Jpeg"
  16. dict.Add "gif", "ImageFormat.Gif"
  17. dict.Add "png", "ImageFormat.Png"
  18. dict.Add "bmp", "ImageFormat.Bmp"

  19. Set tmp = fso.GetSpecialFolder(2)
  20. Set systemroot = fso.GetSpecialFolder(0)
  21. net = systemroot&"\Microsoft.NET\Framework"
  22. Call CreateCs
  23. Set SubFolders = fso.GetFolder(net).SubFolders
  24. For Each Folder In SubFolders
  25.     If fso.FileExists(Folder&"\csc.exe") Then
  26.         cscpath = Folder&"\csc.exe"
  27.         Exit For
  28.     End If
  29. Next

  30. If cscpath = "" Then
  31.     Msgbox "未安装Microsoft .NET Framework 2.0及以上版本组件或是相关程序缺失!"
  32.     WSH.Quit
  33. Else
  34.     '调用csc.exe编译cs文件
  35.     ws.Run cscpath&" /out:"""&tmp&"\$PrtSc.exe"" """&tmp&"\$PrtSc.cs""", 0, True
  36. End If

  37. Do
  38.     ws.Run tmp&"\$PrtSc.exe", 0, True    '执行截屏
  39.     WSH.Sleep interval
  40. Loop   '退出程序需从任务管理器结束wscript.exe进程

  41. Function CreateCs
  42.     Set cs = fso.CreateTextFile(tmp&"\$PrtSc.cs", 2)
  43.     cs.Write _
  44.     "using System.Drawing;using System.Drawing.Imaging;using System.Windows.Forms;" & vbCrLf & _
  45.     "public class MyClass{" & vbCrLf & _
  46.     "   public static void Main(){" & vbCrLf & _
  47.     "        Image img = new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height);" & vbCrLf & _
  48.     "        Graphics g = Graphics.FromImage(img);" & vbCrLf & _
  49.     "        g.CopyFromScreen(new Point(0, 0), new Point(0, 0), Screen.AllScreens[0].Bounds.Size);" & vbCrLf & _
  50.     "        string dt = System.DateTime.Now.ToString(""yyyyMMddHHmmss-fff"");" & vbCrLf & _
  51.     "        img.Save("""&replace(fso.GetFolder(dstFolder).Path,"","\")&"\""+dt+""."&Lcase(ext)&""", "&dict.Item(Lcase(ext))&");}}"
  52. End Function
复制代码

评分

参与人数 1技术 +1 收起 理由
yu2n + 1 感谢分享

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:46 , Processed in 0.018154 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表