Board logo

标题: [其他] [已解决]批处理如何实现屏幕截图/截屏? [打印本页]

作者: yzzsjc2008    时间: 2009-4-12 03:06     标题: [已解决]批处理如何实现屏幕截图/截屏?

本帖最后由 pcl_test 于 2017-4-16 19:52 编辑

本机操作:我想对我的电脑屏幕每1分钟截图一次,保存图片放在电脑指定位置,图片指定格式(*.jpg *.bmp *.gif)
                  同时能规定指定截图3个小时(时间可以改动)
我不知道这里高手能不能帮我实现下!对我来说很困难,我的水平很普通!
联系QQ:88473021
e-mail:windowsover@hotmail.com

[ 本帖最后由 yzzsjc2008 于 2009-4-16 05:34 编辑 ]
作者: HoeKey    时间: 2009-4-12 13:11

想实现截屏你留QQ干什么?
作者: Batcher    时间: 2009-4-13 00:00

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. rem 指定保存截图的路径
  4. set ScFolder=C:\BatHome\Batcher
  5. rem 规定指定截图3个小时
  6. set hours=3
  7. set /a minutes=hours*60
  8. set count=1
  9. :LoopPrtSc
  10. nircmd cmdwait 60000 savescreenshot "%ScFolder%\screenshot_!count!.jpg"
  11. if !count! equ %minutes% (
  12.   goto :eof
  13. ) else (
  14.   set /a count+=1
  15.   goto :LoopPrtSc
  16. )
复制代码
第三方命令行工具nircmd.exe下载地址:
http://bbs.bathome.net/thread-2992-1-1.html
作者: yzzsjc2008    时间: 2009-4-13 01:51

谢谢楼上辛苦奉送代码!功能全部可以实现!给我做活动提供了极大的方便!谢谢!
作者: coolcatsfx    时间: 2009-4-17 10:21     标题: 报错啊?如下

'nircmd' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
作者: coolcatsfx    时间: 2009-4-17 10:45     标题: NIRCMD

原来 NIRCMD 是 批处理第三方命令行工具。

FYI,
http://bbs.bathome.net/viewthread.php?tid=3981&highlight=
作者: tireless    时间: 2009-4-24 13:26

nircmd 2.35 增加了 loop 命令:
  1. @echo off
  2. set "保存路径=C:\BatHome"
  3. set "间隔=1" 分钟
  4. set "循环=3" 小时
  5. set /a wait=间隔*60*1000, times=循环*60/间隔
  6. nircmd loop %times% %wait% savescreenshot "%保存路径%\screenshot_~$loopcount$.jpg"
复制代码

作者: q1x2x3    时间: 2011-3-29 12:43     标题: 批处理截屏是如何实现的?

本帖最后由 pcl_test 于 2017-4-16 19:54 编辑

http://www.bathome.net/redirect. ... 8571&ptid=11646
在网上看到这个批可以截屏,想请各位指教下这个批处理是如何实现的,很久没写批处理了,有些看不太懂。
作者: CrLf    时间: 2011-3-29 12:56

其实不是纯P,只是生成estCapture.cs再调用,cs是某脚本文件的后缀名
作者: Batcher    时间: 2011-3-29 13:28

这是一个很多年前的老方法了,现在很少看到有人使用,它需要.NET Framework的支持,不是很方便。
作者: q1x2x3    时间: 2011-3-29 15:30

3# Batcher


请问现在使用什么办法。。不要说那个外部命令,会报毒的,虽然我知道没毒,我也用过不过始终不是很方便
作者: CrLf    时间: 2011-3-29 15:43

不知道为什么唯独{PRTSC}总是发送不出来,要不然就可以用vbs了
作者: Batcher    时间: 2011-3-29 18:45

4# q1x2x3


哪个外部命令报毒?
作者: caruko    时间: 2011-3-30 00:41

这个是先写C代码,然后调用CS编译,最后执行编译后的exe文件。
作者: tools628    时间: 2011-5-13 00:39

非常好用的代码,谢谢各位高手。但还有个问题想大伙帮忙解答,我用这个代码进行自动截图时,如果关闭又重启动,新截图会覆盖掉原来的截图,有没办法解决这个问题?
作者: applba    时间: 2011-5-13 16:36

vbs 调用 printscreen 就行了,可是我vbs一塌糊涂
作者: applba    时间: 2011-5-13 16:49

再发个别人的方法
运行条件:需要 .NET Framework 支持
  1. @echo off
  2. set "dnfpath=%systemroot%\Microsoft.NET\Framework"
  3. for /f "delims=" %%v in ('dir /ad /b %dnfpath%\v?.*') do (
  4.          if exist "%dnfpath%\%%v\csc.exe" set "cscpath=%dnfpath%\%%v\csc.exe"
  5. )
  6. < "%~f0" more +15 > "%temp%\estCapture.cs"
  7. %cscpath% /out:"%cd%\estCapture.exe" "%temp%\estCapture.cs" 1>nul
  8. estCapture.exe
  9. start estCapture.bmp
  10. ping -n 2 127.1 1>nul
  11. del estCapture.exe
  12. goto:eof
  13. :estCapture
  14. using System.Drawing;
  15. using System.Drawing.Imaging;
  16. using System.Windows.Forms;
  17. public class MyClass
  18. {
  19.         public static void Main()
  20.         {
  21.                         Image img = new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height);
  22.                         Graphics g = Graphics.FromImage(img);
  23.                         g.CopyFromScreen(new Point(0, 0), new Point(0, 0), Screen.AllScreens[0].Bounds.Size);
  24.                         img.Save("estCapture.bmp", ImageFormat.Bmp);
  25.         }
  26. }
复制代码
http://maodun.5d6d.com/archiver/tid-329.html
作者: xslxslxsl    时间: 2011-8-17 23:05

内容真的很不错




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2