对于日常刷课每十分钟点击“继续学习”的行为,想尝试使用Java程序替代。
初步想法是让鼠标移动到固定位置,每十分钟进行点击一次。
然后就发现了java的Robot类,觉得很神奇哈哈哈
附上搜索api网站:
https://www.matools.com/api/java8
概述:此类用于生成本机系统输入事件,用于测试自动化,自动运行演示和需要鼠标和键盘控制的其他应用程序。 Robot的主要目的是为了方便Java平台实现的自动化测试。(自1.3版本以后使用)
1.首先你需要创建一个Robot
Robot robot = new Robot()
//,记得捕捉可能会发生的异常
常用的操作:
机器休眠,鼠标移动,鼠标点击,鼠标释放(松开),按键及按键释放
由于robot的操作是异步的,最好在每个操作中添加一定的休眠时间,否则会打乱你预期的操作顺序。
2.机器休眠:
robot.delay(int ms);
3.鼠标移动:
robot.mouseMove(int x , int y);
4.鼠标点击:
robot.mousePress(int buttons)
//InputEvent.BUTTON1_DOWN_MASK左键
//InputEvent.BUTTON2_DOWN_MASK中间键
//InputEvent.BUTTON3_DOWN_MASK右键
5.鼠标释放:
robot.mouseRelease(int buttons)
//InputEvent.BUTTON1_DOWN_MASK左键
//InputEvent.BUTTON2_DOWN_MASK中间键
//InputEvent.BUTTON3_DOWN_MASK右键
6.按键:
robot.keyPress(int keycode)
//KeyEvent.VK_A A键
7.按键释放
robot.keyRelease(KeyEvent.VK_A)
//KeyEvent.VK_A A键
8.截图功能
//Rectangle screenRect = new Rectangle(int width, int height);
//可以利用微信截图的方式找到坐标点
Rectangle screenRect = new Rectangle(int x, int y, int width, int height);
BufferedImage image = robot.createScreenCapture(Rectangle screenRect)
//获取一个范围内的图片
//将截图保存
public static void writeImageFile(BufferedImage bi) throws IOException {
File outputfile = new File("saved.png");
ImageIO.write(bi, "png", outputfile);
}
9.给定坐标的像素点颜色
Color color =robot.getPixelColor(int x, int y)
//返回给定屏幕坐标处的像素颜色。
综上运用
1.创建robot类
2.开局移动鼠标位置,找到“继续学习”的坐标
3.点击屏幕播放视频
4.循环等待十分钟后,继续重复23操作
public class Lesson {
static Robot robot;
public static void main(String[] args) {
try {
robot = new Robot();
//记得捕捉异常
} catch (AWTException e) {
e.printStackTrace();
}
for (int i=0;i<16;i++){
robot.mouseMove(611,527);
robot.delay(5000);
//开局等5秒,用来切换到视频页面
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(20);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
for (int q=0;q<10;q++){
//等待十分钟
robot.delay(60000);
}
}
}
}
java的robot可以用来进行模拟鼠标移动点击以及键盘的输入等功能,加上一点就可以用在批量点击,批量创建文件,微信的批量找点群发等事件上。
做出来的程序暂时只能在idea或者cmd的命令行窗口运行,后续在想能不能使用javafx做个窗口和打包成exe程序运行。
这里我用的获取坐标的方式算是投机取巧了,看到point是可以获取到坐标的,之后学习完在整理一下。
另外看到哔哩哔哩up主做的运用像素点通关游戏,挺有意思的,分享大家
附上链接:
https://www.bilibili.com/video/BV1GZ4y1P7zx