AutoHotKey实现百度云批量离线下载工具

百度云的离线下载功能比较常用,比如用云盘在平板上看电视剧,通过云盘在电脑和平板端中转漫画、pdf等

但是百度云离线下载一直不支持批量操作,在需要离线下载漫画、连续剧、pdf期刊等资源时,相当费劲,因此自己开发了一个批量离线下载工具

工具使用AutoHotKey实现,原理是模拟用户的鼠标键盘操作自动操作百度云管家客户端进行处理

界面如下,先打开百度云管家并进入文件保存目录,输入链接并确定即可
先打开百度云管家并进入文件保存目录,输入链接并确定即可

工具(包括源码)下载地址

http://download.csdn.net/detail/moonshine_1988/9036053

源码

; 创建工具窗口
Gui, Font, s12 q5
Gui, Add, Edit, r9 w600 vlinks
Gui, Add, Button,, 确定
Gui, Show, , 百度云批量离线下载工具v1.0
return
GuiClose:
    ExitApp
return
; 用户点击确定按钮后触发
Button确定:
    ; 窗口提交,使links变量得到用户输入赋值
    Gui, Submit, NoHide
    ; 如果用户输入结尾有回车,则删除(verycd的批量赋值连接末尾带回车)
    if (SubStr(links, 0) = "`n")
        links := SubStr(links, 1, StrLen(links)-1)
    ; 使用回车符分割用户输入
    linkArr := StrSplit(links, "`n")
    ; 循环处理下载链接
    For index, link in linkArr
    {
        ; 判断百度云管家窗口是否打开
        IfWinExist, 欢迎使用百度云管家
        {
            ; 激活窗口
            WinActivate, 欢迎使用百度云管家
            ; 将鼠标移动到离线下载按钮(如果版本升级后按钮位置改变,可以自行调整这行代码坐标
            Click 530, 117, 0
            ;获取鼠标位置的颜色,以判断离线下载按钮并没有被其它子窗口遮挡(被遮挡则按钮无法点击,功能无法继续)
            PixelGetColor, currentColor, 530, 117, RGB 
            if (currentColor = 0xE6F3FC)
            {
                ; 点击离线下载按钮
                Click 530, 117
                ; 判断离线下载任务创建窗口是否出现
                WinWait, 新建离线下载任务窗口, , 5
                if ErrorLevel
                {
                    MsgBox, ,错误, WinWait timed out.
                    break
                }
                else
                {
                    WinActivate, 新建离线下载任务窗口
                    ; 单机连接输入框(版本升级后位置改变可以自行修改鼠标坐标)
                    Click 66, 101
                    ; 将链接放到剪贴板
                    clipboard = %link%
                    ; 模拟键盘ctrl+v输入链接,使用剪贴板要比模拟键盘输入链接速度快很多
                    SendInput ^v
                    ; 点击确定按钮
                    Click 479, 254
                    ; 等待云管家的离线下载列表窗口出现,20意思是等待20秒,如果网速特别慢处理要超过20秒可以自行修改
                    WinWait, 离线下载任务列表, , 20
                    if ErrorLevel
                    {
                        MsgBox, ,错误, WinWait timed out.
                        break
                    } else
                    {
                        ; 关闭离线下载任务列表,继续处理下一个链接
                        WinActivate, 离线下载任务列表
                        WinClose, 离线下载任务列表
                    }
                }
            }
            else
            {
                MsgBox, , 错误, 请打开我的网盘页面并不要打开子窗口
                break
            }
        } else {
            MsgBox, , 错误, 请先打开百度云管家
            break
        }
    }
return

遗留问题
verycd复制到的ed2k连接,中文都是url编码过的%xx%xx形式,但是百度云不支持,需要自己手动url解码,ahk并没有转码功能,dll和com调用等我都不太会,有高手的话可以试着将urlDecode功能用dll或者com实现然后集成进来,如果实现请务必联系我,学习一下

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值