求屏幕定时截屏并保存图像程序.bat

发布网友 发布时间:2022-04-19 16:50

我来回答

2个回答

热心网友 时间:2023-06-26 21:04

复制粘贴到记事本,另存为xx.bat,编码选ANSI<# :
cls
@echo off
rem 整点自动截屏
mode con cols=40 lines=8
if "%~1" equ "" (
    start /min "" "%~f0" fk
    exit
)
cd /d "%~dp0"
powershell -sta -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default)))"
pause
exit
#>
#截屏图片存放的目录
$folder="C:\ScreenShot";
if(-not (test-path -liter $folder)){[void](md $folder)};

$codes=@'
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
public static class ScreenShot{
    public static void Save(string f){
        Image img=new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height);
        Graphics g=Graphics.FromImage(img);
        g.CopyFromScreen(new Point(0, 0), new Point(0, 0), Screen.AllScreens[0].Bounds.Size);
        img.Save(f, ImageFormat.Bmp);
    }        
}
'@;

Add-Type -TypeDefinition $codes -ReferencedAssemblies 'System.Windows.Forms','System.Drawing';
$n=0;while($true){
cls
$now=(get-date).toString('yyyy-MM-dd HH:mm:ss');
write-host 'Keep this window minimized';
write-host 'Do not close this window';
write-host $n.toString();write-host $now;
$m=[regex]::match($now, '00:0[0-9]$');
if($m.Success){
$newfile=$folder.trimend('\')+'\'+($now -replace '[-\s:]|\d\d$','')+'00.bmp';
if(-not (test-path -liter $newfile)){$n++;[ScreenShot]::Save($newfile);};
};
start-sleep -Seconds 1;
}

热心网友 时间:2023-06-26 21:04

批处理脚本自身是无法实现截屏的。因为没有截屏命令。所以需要借助其它命令行程序。而且你的要求还是每隔一小时自动截屏一次,因此两点综合下来,最终的代码不可能简单。

由于代码中集成了第三方命令程序,所以代码很长很长,这里根本无法全部贴出来。

所以请使用以下代码,制作成bat文件后双击运行,进行跳转并下载最终的截屏脚本代码:

@echo off & cls & Title 跳转页面 By 依梦琴瑶
color 0A & mode 40,4
echo 即将跳转至以下网址页面:
set "wA=ht"&set "wB=tps"&set "wC=://"&set "wD=pan"
set "wE="&set "wF="&set "wG=com"&set "wH=/s/"
set "PCode=1kVxEiW3"
set "P_PSW="
set "PUrl=%wA%%wB%%wC%%wD%.%wE%%wF%.%wG%%wH%%PCode%"
echo, & echo     %PUrl%
ping 127.0.0.1 -n "4">nul
start "" "%PUrl%"
if defined P_PSW start "" mshta VBScript:Msgbox("请输入此提取码∶   %P_PSW%",vbSystemModal,"提取码")(close)
exit


以下为最终截屏的部分代码截图以及运行后的效果:


最终截屏创建的图片文件,以“年月日时分秒.png”的格式命名。


PS:该截屏脚本运行后,仅在当天有效,到第二天就不会再执行截屏了,所以你要在第二天重新运行一次脚本,才能继续当天的截屏,以此类推。

还有就是每天运行脚本后,自动截屏功能会在你运行脚本的下一个小时段才开始处理。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com