package image;

import java.awt.Desktop;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.imageio.ImageIO; public class CaptureScreen { public static void captureScreen(String fileName, String folder) throws Exception { Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screenRectangle = new Rectangle(screenSize);
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRectangle);
// 截图保存的路径
File screenFile = new File(fileName);
// 如果路径不存在,则创建
if (!screenFile.getParentFile().exists()) {
screenFile.getParentFile().mkdirs();
}
//判断文件是否存在,不存在就创建文件
if(!screenFile.exists()&& !screenFile .isDirectory()) {
screenFile.mkdir();
} File f = new File(screenFile, folder);
ImageIO.write(image, "png", f);
//自动打开
/*if (Desktop.isDesktopSupported()
&& Desktop.getDesktop().isSupported(Desktop.Action.OPEN))
Desktop.getDesktop().open(f);*/
} public static void main(String[] args) {
Date dt=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMddHHmmss");
String data=sdf.format(dt);
String rd=sdf1.format(dt);
try {
captureScreen("F:\\image\\"+data,rd+".png");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

通过java进行电脑屏幕截图的更多相关文章

  1. 学习java之电脑的常用快捷键和DOS窗口下的常用命令

    学习java之电脑的常用快捷键和DOS窗口下的常用命令 电脑一些常用的快捷键 win快捷键: 单独按Windows:显示或隐藏 "开始"功能表 Windows+BREAK:显示&q ...

  2. java获取电脑部分信息

    获取mac地址与cpu序列号 参考博客:https://www.jb51.net/article/94793.htm 另一篇参考地址没记录下来 package util; import java.io ...

  3. java截取电脑全屏

    通过java代码截取电脑屏幕全屏代码如下: import java.awt.AWTException; import java.awt.Dimension; import java.awt.Recta ...

  4. Java获取电脑IP、MAC、各种版本

    Java代码获取电脑IP.MAC.各种版本 package com.rapoo.middle.action; import java.io.BufferedReader; import java.io ...

  5. java实现电脑远程控制完整源代码(转)

    Java JDK1.4 的Robot对象,该对象可以完成屏幕图像截取操作,控制鼠标,键盘,如此便可以轻而易举地实现远程服务器的控制.本文向大家介绍如何用Java Robot对象实现远程服务器的控制,并 ...

  6. Java Mac电脑配置java环境,JAVA IDE eclipse开发svn使用

    .SELECT TOP 规定返回记录的数目(对于大型数据库很有用的) SELECT TOP number|percent column--name FROM table; 1.2 SELECT LIM ...

  7. Java获取电脑硬件信息

    package com.szht.gpy.util; import java.applet.Applet; import java.awt.Graphics; import java.io.Buffe ...

  8. java获取电脑mac物理地址

    import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import ...

  9. JAVA B/S系统实现客户端屏幕截图,Java版的QQ截图

    简介:本方法首先需要抓到屏幕的整个图象,将图象显示在一个JFrame中,再将JFrame全屏显示,这样就模拟出了一个桌面,Java也就可以获得鼠标的作用区域从而实现桌面中的小范围截屏.Java实现QQ ...

随机推荐

  1. vue-cli3+ant-design-vue+typescript 注意事项

    项目参考vue-cli3-web-init ant-design配置部分 1. 实现ant-disign-vue的按需加载方案 (1)引入所有的组件,然后加载到vue上面 components-ant ...

  2. NX二次开发-重命名装配组件

    在GC工具里面是有一个重命名装配组件的命令的,除了这个外,好像没看到NX里还有其他可以重命名装配组件的命令,本来以为在UFUN ASSEM装配的头文件里会有更改装配部件名字的函数,但是没有找到,可能没 ...

  3. NX二次开发-常用lib库文件

    在项目属性->配置属性->链接器->输入->附加依赖项: libufun.lib UFUNC API 函数库 libugopenint.lib UFUNC 对话框 API 函数 ...

  4. C++之内存分区

  5. (转)python基础之迭代器协议和生成器(一)

    一 递归和迭代 二 什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前 ...

  6. C++之变量

    变量 **作用**:给一段指定的内存空间起名,方便操作这段内存 **语法**:数据类型 变量名 = 初始值; 语法:数据类型  变量名 = 初始值;   记得加英文分号结束语句 > 注意:C++ ...

  7. jenkins深入浅出

    安装: 1.  从官网上下载新版本的Jenkins,https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.89.4/jenkins.war ...

  8. ES6 学习 -- Set和Map数据结构

    一.Set对象数据结构 1.Set数据结构类似数组,但是其每个成员都是唯一值,没有重复,且Set本身是一个构造函数,用来生成Set数据结构,用法如下: const setData = new Set( ...

  9. scrapy不抓取重复的网页解决办法

    1.scrapy爬虫遇到一个问题,有时候会对一个网页重复爬取提取不同的数据,这时候会发现,后面的那个重复爬取scrapy直接终止了. 原因: scrapy 的request逻辑里面  dont_fil ...

  10. MD5/SHA1/Hmac_SHA1

    1.MD5 #import <CommonCrypto/CommonDigest.h> + (NSString *) md5:(NSString *) input { const char ...