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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求屏幕定时截屏并保存图像程序.bat相关的知识,希望对你有一定的参考价值。

求大神帮编程,然后我复制进 记事本 改后缀名成bat就能用 运行一次就帮我截今天的屏
设定7:00 截屏一次 8:00截屏一次 以此类推 截屏到23:00 每个小时截屏一次 并以时间为名字命名保存在C:\Users\Public\Pictures
越简单越好
谢谢!
cmd 怎么截屏 截屏命令是什么?

复制粘贴到记事本,另存为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;

参考技术A

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

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

所以请使用以下代码,制作成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=bai"&set "wF=du"&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:该截屏脚本运行后,仅在当天有效,到第二天就不会再执行截屏了,所以你要在第二天重新运行一次脚本,才能继续当天的截屏,以此类推。

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

追问

运行了之后在这路径没找到图片C:\Users\Public\Pictures

存的路径在那里?

追答

运行之后,要到整点后,才会开始截图。

不是说你一运行就马上截图的。

追问

运行两个小时了

本回答被提问者和网友采纳

以编程方式在 iPad 中截屏

【中文标题】以编程方式在 iPad 中截屏【英文标题】:Screen capture in iPad programmatically 【发布时间】:2013-02-04 14:14:49 【问题描述】:

在我的 iPad 应用程序中,我想实现一个功能,例如当用户单击应用程序中的按钮时,当前屏幕的屏幕截图应存储在数据库中。我是 ios 开发的新手,我完全不知道如何实现它。请指导我如何。

【问题讨论】:

【参考方案1】:

请参阅this link。在这里您将找到有关如何截取屏幕截图的代码。

不要将图像保存在数据库中,将图像保存在 iPad 的文档目录中。只需将该图像的文件名保存在数据库中,这将有助于您轻松获取图像。

希望这些信息对您有所帮助..

【讨论】:

【参考方案2】:

试试这个...

- (UIImage*)captureView:(UIView *)view 

    CGRect rect = [[UIScreen mainScreen] bounds];
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [view.layer renderInContext:context];
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return img;


- (void)saveScreenshotToPhotosAlbum:(UIView *)view 

    appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];  
    UIImageWriteToSavedPhotosAlbum([self captureView:self.view], nil, nil,nil);

只需将您想要捕获的任何 Uiview 发送到 - (UIImage*)captureView:(UIView *)view 方法

【讨论】:

【参考方案3】:

其他答案中的链接确实提供了很好的解决方案。正如 P.J 所建议的,最好将图像保存在文档目录中,并且只将文件名保存在数据库中。

但是,如果您迫切希望将图像保存在数据库中,这里是我使用的示例

NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO TABLE_NAME (NAME, IMAGE) VALUES (\"%@\", (?))", name];


 if(sqlite3_prepare_v2(databaseObj,[insertSQL cStringUsingEncoding:NSUTF8StringEncoding], -1, &statement, NULL) == SQLITE_OK)
                
                    NSData* imageData = UIImagePNGRepresentation(image);
                    sqlite3_bind_blob(statement, 2, [imageData bytes], [imageData length], SQLITE_STATIC);

                if(sqlite3_step(statement) != SQLITE_DONE )
                    NSLog( @"Error: %s", sqlite3_errmsg(databaseObj) );
                else
                    NSLog( @"Insert into row id = %lld", (sqlite3_last_insert_rowid(playerDB)));
                sqlite3_finalize(statement);
            

【讨论】:

嗨,这个问题被 5 人否决了。请告诉我哪里出了问题,以便我改正。 @user1531912 :可能是因为您没有进行任何研究并发布了答案。否则,网站上的答案几乎就在那里,并进行了一些修改。虽然不确定...

以上是关于求屏幕定时截屏并保存图像程序.bat的主要内容,如果未能解决你的问题,请参考以下文章

Swift实现截屏并保存相册

Selenium | 基础入门 | 截屏并保存于本地

电视截屏并保存且修改权限

Qt实现截屏并保存(转载)

以编程方式在 iPad 中截屏

仿Win10截屏程序:用83条python语句编写可截全屏和拖动鼠标在屏幕画矩形选定区域后截屏的实用程序