迅雷应用开发

简介: 360上市了,同时周鸿祎也暗示自己投资的另一家公司也要上市,业界都在猜测是否是迅雷。但是又有传闻说美国会拿迅雷上市开刀,以知识产权来影响中国互联网企业上市的门槛。 最近迅雷也开放了自己的下载引擎,使得用户不需要安装迅雷,也可以使用迅雷引擎来进行下载。

360上市了,同时周鸿祎也暗示自己投资的另一家公司也要上市,业界都在猜测是否是迅雷。但是又有传闻说美国会拿迅雷上市开刀,以知识产权来影响中国互联网企业上市的门槛。


最近迅雷也开放了自己的下载引擎,使得用户不需要安装迅雷,也可以使用迅雷引擎来进行下载。围绕着迅雷做开发,利用迅雷下载的资源优势,和逐渐壮大的迅雷雷友社区来创造增值,应该是迅雷开放自己下载引擎的目的。围绕迅雷做开发大体上有三种:


1. 使用迅雷的开放引擎XLDownload.dll做开发。
2. 使用迅雷的ThunderAgent.dll, COM组件做Agent开发。
3. 使用Lua在迅雷内部做应用插件开发。
Reference:
http://thunderplatform.xunlei.com/
http://xldoc.xl7.xunlei.com/
 

1. 使用迅雷的开放引擎XLDownload.dll做开发
在XLDownload.dll的 .h 头文件里给出了XLDownload.dll提供的功能:

BOOL __stdcall XLInitDownloadEngine();
DWORD __stdcall XLURLDownloadToFile(LPCTSTR pszFileName, LPCTSTR pszUrl, LPCTSTR pszRefUrl, LONG & lTaskId);
DWORD __stdcall XLQueryTaskInfo(LONG lTaskId, LONG *plStatus, ULONGLONG *pullFileSize, ULONGLONG *pullRecvSize);
DWORD __stdcall XLPauseTask(LONG lTaskId, LONG & lNewTaskId);
DWORD __stdcall XLContinueTask(LONG lTaskId);
DWORD __stdcall XLContinueTaskFromTdFile(LPCTSTR pszTdFileFullPath, LONG & lTaskId);
VOID __stdcall XLStopTask(LONG lTaskId);
BOOL __stdcall XLUninitDownloadEngine();
DWORD __stdcall XLGetErrorMsg(DWORD dwErrorId, LPTSTR pszBuffer, DWORD & dwSize);
enum enumTaskStatus{
  enumTaskStatus_Connect = 0, // 已经建立连接
  enumTaskStatus_Download = 2, // 开始下载 
  enumTaskStatus_Pause = 10, // 暂停
  enumTaskStatus_Success = 11, // 成功下载
  enumTaskStatus_Fail = 12, // 下载失败
};

根据这9个函数,可以使用.Net DllImport 一下,开发出一个基于迅雷引擎的下载工具:

1

迅雷的开放引擎在被调用时,会在系统托盘里弹出提示信息,告诉用户正在使用迅雷开放引擎下载:

2

这个版本的开放下载引擎稍有遗憾,好像只支持Http协议的资源,迅雷本协议的资源并不支持下载。这个让人很是遗憾。


2. 使用迅雷的ThunderAgent.dll, COM组件做Agent开发
安装完迅雷后,在迅雷的BHO文件夹下会找到ThunderAgent.dll,.Net 工程加载这个dll后,会看到Agent内部的API :

3

使用Agent开发迅雷应用,迅雷必须安装,调用AddTask后会弹出迅雷的提示框:

4

需要用户自己点击"立即下载"。可以使用FindWindow, SendMessage, 类似自动测试常用的办法点击"立即下载"。


3. 使用Lua在迅雷内部做应用插件开发
Lua 作为内嵌语言来做插件开发已经非常成熟了,最为著名的应该算暴雪的《魔兽世界》和其它各大游戏厂商都在使用Lua作为自己游戏的插件开发语言。迅雷也选用Lua作为自己的插件开发语言。使用Lua可以快速方便的开发出一个迅雷应用插件:

5

这个 Blog&Music 迅雷插件想在迅雷里一边看博客,一边听音乐。点击插件,会新开一个Tab页载入博客:

6

同时在下载状态栏里载入一个音乐播放器:

7

这样就可以在迅雷里一边看博客,一边听音乐了。 :)


安装插件时,把BlogMusic文件夹拷贝到 ProgramData\Thunder Network\addins\ 下,同时删除addins_cache.xml,清除插件的cache,重新打开迅雷就可以看到这个插件了。

这个插件没有什么实际意义,只是学习迅雷插件的开发。
迅雷在线文档给出了Lua可调用的API:   http://xldoc.xl7.xunlei.com/
迅雷阳台里有一些实用插件:       http://yangtai.xunlei.com/

上面大体是围绕迅雷做开发的三种方式,从这三种方式看,感觉迅雷的开放力度很小,迅雷的开放引擎不支持自己的协议,同时要在系统托盘提示用户在使用迅雷引擎。Lua可访问的API也并不多,而且还主要集中在UI上,看来迅雷对开放还是比较保守的。

示例代码

相关文章
|
5月前
|
IDE 测试技术 持续交付
网易Airtest全新推出:小型便携式集群解决方案!
网易Airtest全新推出:小型便携式集群解决方案!
|
开发者
文件蜈蚣,一款免费开源比迅雷还良心的全协议下载神器
说到下载工具,相信很多人都在使用大名鼎鼎的 IDM 下载神器,优点众多:支持多线程下载,支持网页的视频嗅探下载,不过它支持的协议比较少,比如不支持 BT、ed2k、thunder 下载等;
448 0
文件蜈蚣,一款免费开源比迅雷还良心的全协议下载神器
|
12月前
|
API 开发工具 数据库
【国产开发神器】零代码搭建API接口开放/管理平台——YesApi
YesApi 接口大师,是一款国产企业级API接口管理平台,可以零代码、快速搭建API接口开发平台、接口开放平台、接口管理平台。基于PhalApi Pro 接口开发框架专业版软件,通过低代码可视化配置方式帮助企业快速搭建接口开放平台和管理API接口。 所以说:YesApi接口大师 = 接口低代码开发 + 接口零代码开放 + 接口零代码管理 + 接口计费
|
移动开发 前端开发 JavaScript
体育直播软件网站平台源码| 开发指南搭建与应用
本文将为您介绍利用“东莞梦幻网络科技”体育赛事直播源码的开发指南,包括源码的搭建和应用,帮助您了解如何构建一个功能丰富、稳定可靠的体育赛事直播应用。
|
安全 Linux 网络安全
统信 UOS 版完成主流应用适配,其中包括微信
统信 UOS 版完成主流应用适配,其中包括微信
1355 0
|
搜索推荐 小程序 Android开发
公司官网开发教程,怎么开发公司网站?
公司官网开发教程,怎么开发公司网站?
250 0
|
缓存 JavaScript 安全
这个高颜值的开源第三方网易云音乐播放器你值得拥有
有没有一个既简洁纯粹,颜值又高的网易云音乐播放器呢,答案是有的,它就是:YesPlayMusic,一个开源的第三方实现。
1069 0
这个高颜值的开源第三方网易云音乐播放器你值得拥有
|
Web App开发 移动开发 自然语言处理
heX 用前端技术开发桌面应用软件(网易出品)
heX,一个允许你采用前端技术(HTML,CSS,JavaScript)开发桌面应用软件的跨平台解决方案。是你开发桌面应用的一种新的选择,意在解决传统桌面应用开发中繁琐的UI和交互开发工作,使其变的简单而高效。特别适合重UI,重交互的桌面应用软件。
469 0
heX 用前端技术开发桌面应用软件(网易出品)
|
区块链 新制造 新金融
开放下载! | 《云端奥林匹克》
奥运会是世界上规模最大的综合性体育盛会,同时也是全球最大规模的跨时间、跨地域、跨语言与跨文化的社会协同。奥运无小事。奥运赛场不能因为计时系统的故障让百米决赛重启、不能因为网络攻击丢失任何有关赛事结果的关键信息、更不能因为交通堵塞改变竞赛日程。而新一代体育迷们对奥运会的诉求显然要远高于上述的基本保障。个性张扬、追求体验的全球年轻一代早已不满足坐在电视机前或是观众席上旁观比赛,他们前所未有的渴望置身于奥运的氛围之中,期待与自己的偶像互动,在社交媒体上与朋友分享比赛带来的喜悦,希望得到视觉、听觉、触觉等全部感官上的满足。奥运正在迎来转型的历史时刻。借助数字技术的翅膀迎来蜕变,奥运正在实现全方位的转
7839 0
开放下载! |  《云端奥林匹克》
开放下载!《阿里云RPA-电商应用神器》产品资料
开放下载!《阿里云RPA-电商应用神器》产品资料