目录
- 前言:
- 理论依据:
- 现实依据:
- 朴素版只能循环阅读不能翻页:
- 升级版 翻页 + 阅读:
- 如何使用:
前言:
最近发现有个阅读得读300分钟,懒得去找软件,于是就自己写了一个代码去实现。
理论依据:
平常我们在电脑上看书,主要是利用鼠标
中间的滚轮进行上下的翻阅,达到阅读完整篇文章的目的,所以理论上我们只要做到利用代码能控制鼠标,或者电脑页面进行上下翻阅即可,再添加一个while(true)循环就能实现"永动模式"。
还想整再多一点的操作那也可以试试自动换章节。
刚好我的这门课这个阅读部分的章节是放在一起,且在文章左边,那就更好操作了。
现实依据:
Java中的Robot
类刚好能提供给我们上述所需要的功能,这里简单提及一下本代码涉及到的类方法。
1.创建对象:
Robot r = new Robot();
2.延时函数:
r.delay(毫秒值);
3.鼠标按下:
r.mousePress(鼠标上的按键);
//鼠标左键:InputEvent.BUTTON1_DOWN_MASK
//鼠标中键:InputEvent.BUTTON2_DOWN_MASK
//鼠标右键:InputEvent.BUTTON3_DOWN_MASK
4.鼠标释放:
r.mouseRelease(鼠标上的按键);
//鼠标左键:InputEvent.BUTTON1_DOWN_MASK
//鼠标中键:InputEvent.BUTTON2_DOWN_MASK
//鼠标右键:InputEvent.BUTTON3_DOWN_MASK
5.鼠标移动:
//鼠标滚动(参数小于0,表示向上滚动;参数大于0,表示向下滚动)
r.mouseWheel(int wheelAmt);
6.鼠标滚轮滑动:
//鼠标滚动(参数小于0,表示向上滚动;参数大于0,表示向下滚动)
r.mouseWheel(int wheelAmt);
参考来源:Java中的Robot类详解
理论成立代码如下。
朴素版只能循环阅读不能翻页:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.util.*;
//67%
public class Main {
public static void main(String[] args) throws AWTException {
Robot r = new Robot();
while(true) {
for(int i = 0; i < 110; i ++) {
r.mouseWheel(1);
r.delay(300);
}
for(int i = 0; i < 110; i ++) {
r.mouseWheel(-1);
r.delay(300);
}
}
}
}
升级版 翻页 + 阅读:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.util.*;
//需要将读书页面大小调至67%
public class Main {
public static void main(String[] args) throws AWTException {
Robot r = new Robot();
r.delay(3000);
r.mouseMove(650, 310);//初始调味
r.delay(300);
while(true) {
r.mouseMove(650, 310);//位置矫正
r.delay(100);
homing();
for(int i = 1; i <= 20; i ++) {//随机抽取一个章节
r.mouseMove(650, 310);//位置矫正
r.delay(100);
computer_read();
r.delay(100);
// homing();
r.delay(100);
r.mouseWheel(i + 1);
r.delay(100);
button_use();
button_use();//连续点击两下,唤醒鼠标箭头
r.delay(1000);
}
}
}
public static void button_use() throws AWTException {//进入这个章节
Robot r = new Robot();
r.mousePress(InputEvent.BUTTON1_DOWN_MASK);
r.delay(600);
r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
r.delay(600);
}
public static void computer_read() throws AWTException {//阅读
Robot r = new Robot();
for(int j = 0; j < 1; j++) {
for(int i = 0; i < 110; i ++) {
r.mouseWheel(1);
r.delay(300);
}
for(int i = 0; i < 110; i ++) {
r.mouseWheel(-1);
r.delay(300);
}
}
}
public static void homing() throws AWTException {//归位
Robot r = new Robot();
for(int i = 0; i < 60; i ++) {
r.mouseWheel(-1);
r.delay(300);
}
}
}
上述代码是针对我的阅读的,并不是对所有阅读都能管用,这里主要是记录一下实现过程,以及分享一些实用方法。
如何使用:
1.打开你的阅读任务并进入,调整页面大小为67%
ctr --
2.将代码复制到eclipse编译器上
3.运行代码,并缩小eclipse,再进入刚打开的阅读页面即可。