您的位置:首页 > 其它

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

2015-08-22 19:01 423 查看
百度云的离线下载功能比较常用,比如用云盘在平板上看电视剧,通过云盘在电脑和平板端中转漫画、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(l
4000
inks, "`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实现然后集成进来,如果实现请务必联系我,学习一下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息