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

news2024/9/30 19:42:05

目录

  • 前言:
  • 理论依据:
  • 现实依据:
  • 朴素版只能循环阅读不能翻页:
  • 升级版 翻页 + 阅读:
  • 如何使用:

前言:

最近不也快结课了,网课该刷的都要刷掉,最近不就把一门思政课刷完了,课后习题也做了,但是分数只有可怜的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,再进入刚打开的阅读页面即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/585556.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

粉丝经济:互帮互助,众筹,人人帮我我帮人人

目录 用户精准定位&#xff1a; 用户裂变 用户在线“买卖需要注册&#xff1a;为后期思域流量变现 用户容器“APP&#xff0c;小程序”&#xff1a;用户资产化 LBS(一人千面&#xff0c;个性化定制&#xff0c;根据地理位置进行提醒&#xff1a;优惠券”) 粉丝渠道化&…

信息安全实践1.1(网络嗅探)

前言 这个网络嗅探其实就是用wireshark抓包。那时候赶着做&#xff0c;就随便写了点。参考价值比较少。 第一次实践是因为寒假在家摆烂&#xff0c;然后开学前两天做的&#xff0c;所以质量不是很好。不过也算是一次实践&#xff0c;看看就好。 要求 使用网络嗅探工具抓获网络…

TiDB x Bolt丨超强可扩展性与弹性助力超 1 亿用户畅享出行服务

作者&#xff1a;PingCAP 封小明 通过 TiDB 连接全球极限场景和创新场景&#xff0c;是 PingCAP 长期坚持的国际化战略。目前&#xff0c;在全球已有超过 3000 家企业选择 TiDB。无论在游戏、金融、物流、互联网还是智能制造等行业&#xff0c;基于规模化 OLTP 扩容、实时 HTA…

为什么说企业需要搭建产品手册?

企业需要搭建产品手册的原因有很多&#xff0c;其中包括提高产品使用体验、降低售后服务成本、促进产品销售等。本文将从这些方面来介绍企业为什么需要搭建产品手册&#xff0c;并探讨如何有效地搭建和管理产品手册。 一、提高产品使用体验 产品手册是一份指导用户如何正确使…

【数据结构】二叉树——链式结构的实现(代码演示)

目录 1 二叉树的链式结构 2 二叉树的创建 3 二叉树的遍历 3.1 前序遍历 3.1.1运行结果&#xff1a; 3.1.2代码演示图: 3.1.3 演示分析&#xff1a; 3.2 中序遍历 3.3 后序遍历 3.4 层序遍历 4 判断是否是完全二叉树 5 二叉树节点的个数 5.1 总个数 5.2 叶子节点…

Electron-Builder Windows系统代码签名

前言 项目打包签名是两年前做的了&#xff0c;使用Electron-Bulder&#xff0c;打包工具版本迭代较少&#xff0c;倒是electron版本更新飞快&#xff0c;目前官方推荐使用Electron Forge进行打包&#xff0c;后续再对两者进行对比&#xff0c;重新整理现在的实现方案。 签名简…

微信扫码授权到登录网页,中间究竟发生了什么?

关于我昨天突然接到神秘“面试”&#xff1a;微信扫码授权登录的实现逻辑是神魔&#xff1f;在这个扫码授权的过程中客户端、服务端、微信平台都做了些神魔&#xff1f;二维码里面又有哪些信息&#xff1f; 从手机微信扫一扫二维码到登录个人的知乎账户&#xff0c;中间究竟发生…

智警杯赛前学习1.2--excel统计函数

常用统计函数 count countif&#xff08;区域&#xff0c;条件&#xff09; countifs&#xff08;区域&#xff0c;条件&#xff0c;区域&#xff0c;条件&#xff09; 求和函数 sum sumif&#xff08;区域&#xff0c;条件&#xff0c;[求和区域]&#xff09; sumifs&#xff…

AOP日志功能实现

AOP日志功能实现 1、添加两个工具类2、新建一个接口为 LogAnnotation3、新建一个类 LogAspect4、使用自定义注解 LogAnnotation5、运行结果6、项目结构 转载自b站&#xff1a;码神之路 1、添加两个工具类 HttpContextUtils 用于获取当前请求的 HttpServletRequest 对象&#xf…

Pycharm中安装jupyter 以及一些会遇到的问题

1、确保电脑安装了 anaconda 和jupyter notebook 2、在命令行 启动jupyter Notebook &#xff08;启动后不要关闭这个命令窗口&#xff09; 命令&#xff1a;juputer Notebook 成功运行后的网页界面&#xff1a; 3、打开Pycharm 创建新的项目 &#xff08;注意是Conda) 4、 创…

【微信小程序开发小白零基础入门】微信小程序入门【建议收藏】

微信小程序入门 文章目录 微信小程序入门前言一、小程序的概述1.小程序简介2.小程序诞生3.小程序功能4.小程序创建步骤 二、小程序的准备工作1.注册开发者账号2.小程序信息完善3.成员管理 三、小程序的开发工具3.其他辅助工具 四、推荐小程序&#xff08;欢迎各位大佬指导&…

STM32F4_常用存储器简介

目录 1. 存储器的种类 单片机和电脑一样&#xff0c;其内核分别为ARM和CPU(CPU通常是不具备存储功能的)&#xff0c;内核是用来进行数据的运算和处理的。内核处理数据的来源就是存储器。 1. 存储器的种类 RAM存储器&#xff1a; RAM是 “Random Access Memory”的缩写&#x…

Java 集合、数组、字符串的相互转换(关于list.toArray(new String[0])的源码分析)

在 Java 中&#xff0c;可以通过以下方式实现集合、数组和字符串之间的相互转换。 一、集合和数组的相互转化 ①、将集合转为数组&#xff1a;&#xff08;toArray 方法&#xff09; List<String> list new ArrayList<>(); list.add("apple"); lis…

异构跨库数据同步还在用Datax?来看看这几个开源的同步方案

在遇到跨库或者异库数据同步时&#xff0c;我们一般都会借助ETL工具来实现数据同步功能。比如目前大家较为熟知的Kettle和Datax。但是&#xff0c;这两个需要定时去查询数据库的数据&#xff0c;会存在一定的延迟&#xff0c;而且&#xff0c;默认采用全量同步的方式&#xff0…

Java Spring概述

文章目录 1、Spring是什么&#xff1f;2、Spring 的狭义和广义3、Spring Framework特点4、Spring模块组成5、Spring6版本要求 1、Spring是什么&#xff1f; Spring 是一款主流的 Java EE 轻量级开源框架 &#xff0c;Spring 由“Spring 之父”Rod Johnson 提出并创立&#xff…

AD原理图元器件封装绘制

元器件封装界面 1.元器件可以新建原理图库&#xff0c;然后在新建的库中添加 2.采用下图中的方式&#xff0c;随便右键某个库中的元器件&#xff0c;选择“Edit…”&#xff0c;进入到元器件封装绘制界面 元器件封装设计步骤 1.点击工具——新器件 输入新器件ID&#xff0c…

性能测试监控平台:InfluxDB+Grafana+Jmeter

前言 性能测试工具jmeter自带的监视器对性能测试结果的实时展示&#xff0c;在Windows系统下的GUI模式运行&#xff0c;渲染和效果不是太好&#xff0c;在linux环境下又无法实时可视化。 2023年最新出炉性能测试教程&#xff0c;真实企业性能压测全流程项目实战训练大合集&am…

软件测试:测试用例详解

一、通用测试用例八要素   1、用例编号&#xff1b;    2、测试项目&#xff1b;   3、测试标题&#xff1b; 4、重要级别&#xff1b;    5、预置条件&#xff1b;    6、测试输入&#xff1b;    7、操作步骤&#xff1b;    8、预期输出 二、具体分析通…

微信支付Native下单API V3接口开发详解

这几天做微信支付Native下单接口调用、签名这块&#xff0c;弄的我焦头烂额&#xff0c;翻了很多网上配置&#xff0c;各有不同&#xff0c;写的不清不楚&#xff0c;只能自己慢慢研究&#xff0c;尝试了无数种解决坑的方案&#xff0c;嚼文咬字看官方的文档调试&#xff0c;文…

从零开始学Android开发期末复习重点

目录 前言作业&#xff11;作业&#xff12;作业&#xff13;作业4作业5作业6 前言 物联网应用技术课程期末复习重点——学习通作业&#xff1a; 操作系统&#xff1a;Ubuntu22.04 作业&#xff11; 简述Android系统架构。 Android 的系统架构和它的操作系统一样&#xff…