五邑大学吧 关注:90,324贴子:1,324,546
  • 12回复贴,共1

分享一个程序,不多解释,上模电或者数电的自然懂

只看楼主收藏回复

#SingleInstance Force
SetMouseDelay(50)
; 该代码为云教材自动刷进度程序,需要搭配软件AutoHotkey V2(V1可能有兼容性问题)使用,使用时需将文件的后缀改为.ahk
; 注意:启动循环时请确保该章节进度条位于顶部,并且确保坐标正确
; 双击文件(必须是改为.ahk后的)按下F3启动程序,按下F2后退出程序,重新启动程序需再次双击文件
; 坐标点(根据实际情况替换,可使用AutoHotkey自带的WindowSpy.ahk查看坐标和颜色)
A_point := {x: 1300, y: 900} ; 鼠标滚轮滚动位置(框内整个页面任何位置都可以)
B_point := {x: 1674, y: 1369} ; 下一页按钮位置
C_point := {x: 1697, y: 1300} ; 进度条底部检测点
D_point := {x: 1697, y: 91} ; 进度条顶部检测点
global progressColor := "0xC1C1C1" ; 进度条颜色(鼠标是否指向进度条时颜色会有区别,需要的是鼠标不在上面时的颜色)
global eachChapterTime := 4 ; 在页面停留多久后翻页(单位:分钟,可用小数)
global wheelSleep := 8 ; 滚轮滚动间隔时间(单位:秒),用来调节滚动的速度(越长越慢)
;=============================以上为可调节的参数
;=============================以下为不需要调节的参数
; 有些章节没有进度条(称为短章节),这样的章节无法在触底检测的时候会永远无法实现触底,,因此需要加入参数检测短章节
global hasReachedBottom := false ; 章节触底状态标志
global isLongChapter := false ; 是否长章节标志(是否有进度条)
; 热键设置
F3:: { ;启动循环
static running := false
running := !running
if running
SetTimer(ScrollLoop, -1)
}
F2:: ExitApp ;退出脚本
ScrollLoop() {
global
static scrollDir := 1, startTime := A_TickCount
; 通过判断进度条的有无初始章节类型检测
isLongChapter := (PixelGetColor(D_point.x, D_point.y) == progressColor)
loop {
MouseMove(A_point.x, A_point.y, 0)
CheckScrollDirection(&scrollDir)
Click("Wheel" . (scrollDir > 0 ? "Down" : "Up"))
; 在页面停留时间的检测,若该章节期间触底过则直接执行翻页
if (A_TickCount - startTime > eachChapterTime * 60000) {
; 如果是长章节且尚未触底,则滚动到底部后再执行翻页
if (isLongChapter && !hasReachedBottom) {
while (PixelGetColor(C_point.x, C_point.y) != progressColor) {
MouseMove(A_point.x, A_point.y, 0)
Click("WheelDown")
Sleep(wheelSleep * 1000)
}
hasReachedBottom := true
}
; 执行翻页
MouseMove(B_point.x, B_point.y, 0)
Click()
Sleep(2000)
; 通过判断进度条的有无检测新章节类型(翻页后立即检测)
isLongChapter := (PixelGetColor(D_point.x, D_point.y) == progressColor)
; 重置滚动状态
hasReachedBottom := false
scrollDir := 1
startTime := A_TickCount
}
Sleep(wheelSleep * 1000)
}
}
CheckScrollDirection(&dir) {
global
; 检测到进度条底部
if (PixelGetColor(C_point.x, C_point.y) == progressColor) {
dir := -1
hasReachedBottom := true
return
}
; 检测到进度条顶部
if (PixelGetColor(D_point.x, D_point.y) == progressColor)
dir := 1
}


IP属地:广东1楼2025-09-11 15:53回复
    之前发过两次被删了


    IP属地:广东来自Android客户端2楼2025-09-11 16:02
    回复
      2025-10-25 05:22:28
      广告
      不感兴趣
      开通SVIP免广告


      IP属地:广东来自iPhone客户端3楼2025-09-11 16:07
      回复
        这是啥


        IP属地:广东来自Android客户端4楼2025-09-11 18:09
        收起回复
          先存一下


          IP属地:广东来自Android客户端5楼2025-09-11 18:33
          回复
            不需要买电子书的8u不用看


            IP属地:广东来自Android客户端6楼2025-09-11 23:11
            回复
              黑客潍坊客


              IP属地:广东来自Android客户端7楼2025-09-11 23:27
              收起回复


                IP属地:广东来自Android客户端8楼2025-09-12 08:33
                回复
                  2025-10-25 05:16:28
                  广告
                  不感兴趣
                  开通SVIP免广告
                  不错不错


                  IP属地:广东来自Android客户端9楼2025-09-12 08:45
                  回复
                    ldx终于把焚决交出来了


                    IP属地:广东来自Android客户端10楼2025-09-12 10:05
                    回复


                      IP属地:广东来自iPhone客户端11楼2025-09-13 12:55
                      回复