广性 发表于 2025-5-31 23:47:57

windows实现每天定时截图

windows实现每天定时截图

一直想要做一个功能来给自己的电脑每天进行一个截图操作,今天终于做好了,下面分享一下设置的过程。
使用工具


[*]任务计划程序(系统自带)
[*]snipaste (手动下载)
设置snipaste

因为我之前的设置是在使用snipaste进行截图的时候将截图自动保存,所以开启了这个设置。本次要设置的定时截图功能也延续了该设置来实现截图的自动保存。
D:\systemfile\Pictures\snipaste\$yyyy$\$MM$\$yyyyMMdd_HHmmss$.png
编写截图的脚本

脚本分为两个,一个是bat脚本,用来启停snipaste、截图操作。另外一个是vbs脚本,用来在后台启动bat脚本。
snipaste.bat
@echo off & chcp 65001 >nul
:: 1. 检查 Snipaste.exe 是否正在运行
tasklist /FI "IMAGENAME eq Snipaste.exe" 2>NUL | find /I "Snipaste.exe" >NUL
set was_running=%ERRORLEVEL%

:: 2. 如果未运行,则启动 Snipaste.exe
if %was_running% neq 0 (
    echo Snipaste.exe 未运行,正在启动...
    start "" "Snipaste.exe"
    timeout /t 2 >nul
)

:: 3. 执行截图并保存,这里使用了snipaste的自动保存功能
:: 如果需要使用自定义的保存,可以参考snipaste文档
:: https://docs.snipaste.com/zh-cn/command-line-options
echo 正在执行全屏截图并保存...
Snipaste.exe snip --full -o success
timeout /t 1 >nul

:: 4. 如果最初未运行,则退出 Snipaste.exe(还原状态)
if %was_running% neq 0 (
    echo 还原状态,退出 Snipaste.exe...
    start "" "Snipaste.exe" exit
    timeout /t 1 >nul
)

echo 操作完成!
timeout /t 2 >nul注意不要使用pause,因为这会导致cmd一直无法退出,需要手动结束进程。
snipaste.vbs
set ws=createobject("wscript.shell")
ws.Run """snipaste.bat""",0将snipaste.vbs和snipaste.bat放在同一个目录下,不要使用中文。
设置任务计划程序

Win + R输入taskschd.msc打开任务计划程序设置。

[*]创建基本任务
[*]名字写每日截图,根据自己喜好设置
[*]触发器设置为每天,选一个自己需要运行的时间
[*]操作选择启动程序
[*]脚本或脚本,名字填入snipaste.vbs,起始于填入 E:\code\IdeaProjects\notebook\windows\shell\bat\learn-bat\snipaste\,根据自己脚本所在路径进行设置
[*]设置完成后点选中新添加的任务,点一下右边的运行,测试截图是否成功
至此,为windows系统设置每天定时截图的功能就做好了。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: windows实现每天定时截图