您现在的位置是:首页 >技术交流 >利用代码实现自动刷网课阅读时长功能 JAVA网站首页技术交流

利用代码实现自动刷网课阅读时长功能 JAVA

Narnat 2024-07-02 12:01:03
简介利用代码实现自动刷网课阅读时长功能 JAVA

前言:

最近不也快结课了,网课该刷的都要刷掉,最近不就把一门思政课刷完了,课后习题也做了,但是分数只有可怜的50几分,打开分数占比一看才知道,阅读占了45%得刷够300分钟才能拿满,不知道有没有刷阅读的脚本,也懒得去找,于是就自己动手写了一个,自动刷阅读时长的代码,本代码用Java实现,并在 编译器 eclipse 上测试。

在这里插入图片描述


理论依据:

平常我们在电脑上看书,主要是利用鼠标中间的滚轮进行上下的翻阅,达到阅读完整篇文章的目的,所以理论上我们只要做到利用代码能控制鼠标,或者电脑页面进行上下翻阅即可,再添加一个while(true)循环就能实现"永动模式"。

还想整再sao一点的操作那也可以试试让代码帮你自动换章节。
在这里插入图片描述
刚好我的这门课这个阅读部分的章节是放在一起,且在文章左边,那就更好操作了。


现实依据:

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.打开你的阅读任务并进入

2.将代码复制到eclipse编译器上

3.运行代码,并缩小eclipse,再进入刚打开的阅读页面即可。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。