大家都知道,Java给我们提供了许多的类,供我们使用。其中就有一个比较有意思的类Robot类;
而在Robot类中有个方法createScreenCapture,该方法可以获取屏幕像素并创建图像;
简单粗暴的代码:
package com.cainiao.robot;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;
public class RoBot {
public static void main(String[] args) throws AWTException, IOException {
Robot robot = new Robot();
// 进入死循环
while (true){
Date date = new Date();
BufferedImage buff = robot.createScreenCapture(new Rectangle(1540,860));
// 指定路径+文件名
File file = new File("D:\\xxx\\截图"+date.getTime()+".jpg");
OutputStream os = new FileOutputStream(file);
ImageIO.write(buff,"jpg",os);
}
}
}
源码解析:将获取图像的方法,写进死循环,从而达到实时监控页面的功能。
思路扩展:我们换个角度想,我们能不能将获取的图像作为邮件,利用Java.mail.* 类实现邮件的发送,将获取的图像发送到我们的邮箱,再将整个程序打包,安装到女神的电脑上,写一个开机自启的脚本,然后,我们每天就可以....嘿嘿嘿了
。啊不,我们就可以无时无刻的关注女神了。
我们再看看其他方法:
delay(int ms) : 睡眠时间,一般用来做延迟。
keyPress(int keycode) : 模拟按下某个键。
keyRelease(int keycode) : 模式释放某个键。
mouseMove(int x,int y) : 将鼠标移动到给定的位置。
等更多有趣的方法自行百度。
其实我们依靠上面的四种方法,其实就可以实现一些简单的辅助;
思路一:
比如我们玩的某些游戏,有需要的操作都是流程化的,那我们可不可以利用上面的四个方法,提前将我们的在游戏中的运行轨迹给设定好,那我们是不是就可以解放双手了!
思路二:
不知道大家有没有这样一个烦恼,在夜深人静的时候,你的室友总会在不停敲击键盘,按着鼠标,在召唤师峡谷中来回穿梭。严重影响了自己的休息时间,说又不敢说,毕竟打不过人家。。。
我们可以利用mouseMove(int x,int y) 这个方法将鼠标的位置,固定到一个具体的坐标值,将其扔到死循环中,从而让其鼠标达到“失效”的效果。