为什么要编写挂机程序呢?我们不可能一直去做许多重复的,没有意义的事,因为老做这些事我们会感到厌烦,而电脑不会这样想的,电脑是一个无情的人。电脑可以做到人能做到的绝大部分事情,但判断能力可能比不上人,我们只要给电脑足够的判断力(编写好判断函数),电脑可以代替我们做绝大多数事情:

void delay(int seconds) 延时seconds秒

Color getPixelColor(int x,int y) 获取屏幕(x,y)坐标的点的像素点的颜色

void keyPress(int button) button=KeyEvent.VK_键盘按键(A)按下键盘按键(A) 特殊键可能有其他名字

void keyRelease(int button) button同上 释放键盘按键(A)

void mouseMove(int x,int y) 移动鼠标至屏幕(x,y)点

void mousePress(int button) 按下鼠标上的键(有三个,分别是左,中,右,) button=InputEvent.BUTTON1(“1”可以换为2,3)_DOWN_MASK

void mouseWheel(int x) 滚动鼠标滑轮

其中需要注意按下键盘按键后到释放键盘之间(包括点击鼠标)有一个延时,大约300ms,即delay(300),延时的时间建议用随机数生成

思路:(以超星网为例)

伪代码如下

while(true){

if(视屏暂停()){

检查视频暂停的原因()

if(弹出答题窗口()){

关掉答题窗口()

}

else {//视频播放完毕

切换下一个视频()

}

}

}

1.视屏暂停(),检查视频暂停的原因(),弹出答题窗口(),判断视频播放完毕都可以用判断屏幕上某一点的像素点的颜色变化来完成。

2.关掉答题窗口():

点击选项a(将鼠标移到选项a的位置,单机鼠标左键),

点击提交,

点击选项b,

点击提交,

点击继续,

这样不管你选择的答案是否正确都可以关掉弹窗。

3.切换下一个视频():

点击课程列表方框(屏幕的最右边)的左上角(原因:确保按Tab键切换的内容是课程名称而不是作业里面的题(看完视频后会自动切换至答题页面))

按下n+1个Tab键(n为已经看完的视频数量(包含正在看的视频),同时n=n+1

按下Enter键(成功切换至下一个视频)

4.程序的配置:

1)该程序需要配置多个坐标信息,包括判断视频暂停的位置(与判断弹出问题窗口以及视频播放完毕可以是同一个位置),弹窗中a,b,提交按钮的位置,课程列表方框左上角的位置,这些信息可以存储在文件中

2)程序一开始需要获取你已经观看的视频数量(包含正在看的视频),确保可以跳转至下一视频

5.其他提示:

推荐配合violentmonkey(游览器的一个扩展应用)使用,超星网pc端视频播放时鼠标必须移动到视频内部才能让视频持续播放, violentmonkey有一个脚本可以解除这个限制,如果不使用这个脚本,挂机程序需要追加很多视频暂停的处理,这里不展开叙述。

视频暂停的原因还有一个时弹出验证码,这个的解决方法有两个:

1在游览器添加广告过滤代码

2先多次切换视频至弹出一次验证码,关掉后一般就不谈了(我弹出一次关掉后就没有再弹出过了)