【转载】迅雷应用开发(调用迅雷自…
来源:互联网 发布:阿里云兼职 编辑:程序博客网 时间:2024/06/05 22:44
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
__stdcallXLInitDownloadEngine();
DWORD
__stdcallXLURLDownloadToFile(
LPCTSTR
pszFileName,
LPCTSTR
pszUrl,
LPCTSTR
pszRefUrl,
LONG
&lTaskId);
DWORD
__stdcallXLQueryTaskInfo(
LONG
lTaskId,
LONG
*plStatus,
ULONGLONG
*pullFileSize,
ULONGLONG
*pullRecvSize);
DWORD
__stdcallXLPauseTask(
LONG
lTaskId,
LONG
&lNewTaskId);
DWORD
__stdcallXLContinueTask(
LONG
lTaskId);
DWORD
__stdcallXLContinueTaskFromTdFile(
LPCTSTR
pszTdFileFullPath,
LONG
&lTaskId);
VOID
__stdcallXLStopTask(
LONG
lTaskId);
BOOL
__stdcallXLUninitDownloadEngine();
DWORD
__stdcallXLGetErrorMsg(
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 一下,开发出一个基于迅雷引擎的下载工具:
迅雷的开放引擎在被调用时,会在系统托盘里弹出提示信息,告诉用户正在使用迅雷开放引擎下载:
这个版本的开放下载引擎稍有遗憾,好像只支持Http协议的资源,迅雷本协议的资源并不支持下载。这个让人很是遗憾。
2. 使用迅雷的ThunderAgent.dll,COM组件做Agent开发
安装完迅雷后,在迅雷的BHO文件夹下会找到ThunderAgent.dll,.Net工程加载这个dll后,会看到Agent内部的API :
使用Agent开发迅雷应用,迅雷必须安装,调用AddTask后会弹出迅雷的提示框:
需要用户自己点击"立即下载"。可以使用FindWindow, SendMessage,类似自动测试常用的办法点击"立即下载"。
3.使用Lua在迅雷内部做应用插件开发
Lua作为内嵌语言来做插件开发已经非常成熟了,最为著名的应该算暴雪的《魔兽世界》和其它各大游戏厂商都在使用Lua作为自己游戏的插件开发语言。迅雷也选用Lua作为自己的插件开发语言。使用Lua可以快速方便的开发出一个迅雷应用插件:
这个 Blog&Music 迅雷插件想在迅雷里一边看博客,一边听音乐。点击插件,会新开一个Tab页载入博客:
同时在下载状态栏里载入一个音乐播放器:
这样就可以在迅雷里一边看博客,一边听音乐了。 :)
安装插件时,把BlogMusic文件夹拷贝到 ProgramData\Thunder Network\addins\下,同时删除addins_cache.xml,清除插件的cache,重新打开迅雷就可以看到这个插件了。
这个插件没有什么实际意义,只是学习迅雷插件的开发。
迅雷在线文档给出了Lua可调用的API:
迅雷阳台里有一些实用插件:
上面大体是围绕迅雷做开发的三种方式,从这三种方式看,感觉迅雷的开放力度很小,迅雷的开放引擎不支持自己的协议,同时要在系统托盘提示用户在使用迅雷引擎。Lua可访问的API也并不多,而且还主要集中在UI上,看来迅雷对开放还是比较保守的。
示例代码
- 【转载】迅雷应用开发(调用迅雷自…
- 迅雷应用开发
- (转载).net调用迅雷步骤(值得收藏)
- 迅雷
- 迅雷
- 调用ThunderAgent 迅雷局域网版的开发
- 迅雷7应用开发在线文档
- 。net 调用迅雷
- .NET如何调用迅雷
- 迅雷api 下载 调用
- 网页调用迅雷下载
- 迅雷调用potplayer
- 转载 VB.NET编程调用迅雷下载文件
- 转载--认识迅雷界面引擎
- c# 调用迅雷下载漫画
- 调用迅雷api下载资源
- 调用迅雷api下载资源
- VC++调用迅雷下载文件
- C#开发之List泛型集合
- asp.net 微信支付 实例代码
- Java 定时器的使用:每天定…
- 关于JAVA中如何判断一个文件…
- PAT_1027. Colors in Mars
- 【转载】迅雷应用开发(调用迅雷自…
- Intellij IDEA 生成 JavaDoc
- HTTP返回码中301与302的区别
- 【转载】接口回调经典案例--网络…
- Java学习之MD5计算工具类
- 【转载】Listview中显示不同的视图…
- 【转载】Genymotion提示To fi…
- 【转载】Android 利用addView…
- 【转载】获取Android设备挂载的所…