目前只支持HTTP协议

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Threading;namespace ThunderSDK
{class Program{enum enumTaskStatus{enumTaskStatus_Connect = 0,                 // 已经建立连接enumTaskStatus_Download = 2,                // 开始下载 enumTaskStatus_Pause = 10,                  // 暂停enumTaskStatus_Success = 11,                // 成功下载enumTaskStatus_Fail = 12,                   // 下载失败};public const int XL_SUCCESS = 0;public const int XL_ERROR_FAIL = 0x10000000;// 尚未进行初始化public const int XL_ERROR_UNINITAILIZE = XL_ERROR_FAIL + 1;// 不支持的协议,目前只支持HTTPpublic const int XL_ERROR_UNSPORTED_PROTOCOL = XL_ERROR_FAIL + 2;// 初始化托盘图标失败public const int XL_ERROR_INIT_TASK_TRAY_ICON_FAIL = XL_ERROR_FAIL + 3;// 添加托盘图标失败public const int XL_ERROR_ADD_TASK_TRAY_ICON_FAIL = XL_ERROR_FAIL + 4;// 指针为空public const int XL_ERROR_POINTER_IS_NULL = XL_ERROR_FAIL + 5;// 字符串是空串public const int XL_ERROR_STRING_IS_EMPTY = XL_ERROR_FAIL + 6;// 传入的路径没有包含文件名public const int XL_ERROR_PATH_DONT_INCLUDE_FILENAME = XL_ERROR_FAIL + 7;// 创建目录失败public const int XL_ERROR_CREATE_DIRECTORY_FAIL = XL_ERROR_FAIL + 8;// 内存不足public const int XL_ERROR_MEMORY_ISNT_ENOUGH = XL_ERROR_FAIL + 9;// 参数不合法public const int XL_ERROR_INVALID_ARG = XL_ERROR_FAIL + 10;// 任务不存在public const int XL_ERROR_TASK_DONT_EXIST = XL_ERROR_FAIL + 11;// 文件名不合法public const int XL_ERROR_FILE_NAME_INVALID = XL_ERROR_FAIL + 12;// 没有实现public const int XL_ERROR_NOTIMPL = XL_ERROR_FAIL + 13;// 已经创建的任务数达到最大任务数,无法继续创建任务public const int XL_ERROR_TASKNUM_EXCEED_MAXNUM = XL_ERROR_FAIL + 14;// 任务类型未知public const int XL_ERROR_INVALID_TASK_TYPE = XL_ERROR_FAIL + 15;// 文件已经存在public const int XL_ERROR_FILE_ALREADY_EXIST = XL_ERROR_FAIL + 16;// 文件不存在public const int XL_ERROR_FILE_DONT_EXIST = XL_ERROR_FAIL + 17;// 读取cfg文件失败public const int XL_ERROR_READ_CFG_FILE_FAIL = XL_ERROR_FAIL + 18;// 写入cfg文件失败public const int XL_ERROR_WRITE_CFG_FILE_FAIL = XL_ERROR_FAIL + 19;// 无法继续任务,可能是不支持断点续传,也有可能是任务已经失败// 通过查询任务状态,确定错误原因。public const int XL_ERROR_CANNOT_CONTINUE_TASK = XL_ERROR_FAIL + 20;// 无法暂停任务,可能是不支持断点续传,也有可能是任务已经失败// 通过查询任务状态,确定错误原因。public const int XL_ERROR_CANNOT_PAUSE_TASK = XL_ERROR_FAIL + 21;// 缓冲区太小public const int XL_ERROR_BUFFER_TOO_SMALL = XL_ERROR_FAIL + 22;// 调用XLInitDownloadEngine的线程,在调用XLUninitDownloadEngine之前已经结束。// 初始化下载引擎线程,在调用XLUninitDownloadEngine之前,必须保持执行状态。public const int XL_ERROR_INIT_THREAD_EXIT_TOO_EARLY = XL_ERROR_FAIL + 23;[DllImport("XLDownload.dll", EntryPoint = "XLInitDownloadEngine")]public static extern bool XLInitDownloadEngine();[DllImport("XLDownload.dll", EntryPoint = "XLURLDownloadToFile", CharSet = CharSet.Unicode)]public static extern int XLURLDownloadToFile(string pszFileName, string pszUrl, string pszRefUrl, ref  Int32 lTaskId);[DllImport("XLDownload.dll")]public static extern int XLQueryTaskInfo(int lTaskId, ref int plStatus, ref double pullFileSize, ref double pullRecvSize);[DllImport("XLDownload.dll")]public static extern int XLPauseTask(int lTaskId, ref int lNewTaskId);[DllImport("XLDownload.dll")]public static extern int XLContinueTask(int lTaskId);[DllImport("XLDownload.dll")]public static extern int XLContinueTaskFromTdFile(string pszTdFileFullPath, ref int lTaskId);[DllImport("XLDownload.dll")]public static extern void XLStopTask(int lTaskId);[DllImport("XLDownload.dll")]public static extern bool XLUninitDownloadEngine();[DllImport("XLDownload.dll")]public static extern int XLGetErrorMsg(int dwErrorId, string pszBuffer, ref int dwSize);static void Main(string[] args){if (!XLInitDownloadEngine()){Console.WriteLine("下载引擎初始化错误");return;}Int32 lTaskId = 0;string filename = "d://xx.exe";string url = "http://xmp.down.sandai.net/kankan/XMPSetup_3.8.1.485-www.exe";string refurl = "http://xmp.down.sandai.net";int dwRet = XLURLDownloadToFile(filename, url, refurl, ref  lTaskId);if (XL_SUCCESS != dwRet){XLUninitDownloadEngine();Console.WriteLine("添加新任务失败");return;}Console.WriteLine("开始下载");do{Thread.Sleep(1000);double pullFileSize = 0;double pullRecvSize = 0;int lStatus = -1;dwRet = XLQueryTaskInfo(lTaskId, ref lStatus, ref pullFileSize, ref  pullRecvSize);if (XL_SUCCESS == dwRet){if ((int)enumTaskStatus.enumTaskStatus_Success == lStatus){Console.WriteLine("下载完成");break;}if (0 != pullFileSize){double douProcess = (double)pullRecvSize / (double)pullFileSize;douProcess *= 100.0;Console.WriteLine("下载进度:{0}%", douProcess);}else{Console.WriteLine("文件长度为0");}}} while (XL_SUCCESS == dwRet);XLStopTask(lTaskId);XLUninitDownloadEngine();}}
}

C#调用迅雷下载实例相关推荐

  1. 函数式编程:Python 调用迅雷下载

    采用CMD命令调用迅雷下载之后,需要点击来新建任务,其他教程说开启立即下载即可,但是我这里并没什么什么用,所以使用了识图功能. 函数式编程使得代码非常的清晰,但是代码的复用问题还存在,封装路径得清晰. ...

  2. 一行代码实现python调用迅雷下载文件 悄悄的帮你下载你想要的

    一行代码实现python调用迅雷下载文件 前言 解决思路 代码 前言 这几天发现有有一些网站把他们资源的迅雷链接直接亮出来,总是被反爬技术伤害的我心中突然一喜,我用迅雷下载不碍你事了吧,话不多说,开整 ...

  3. 迅雷可以下载的文件是forum.php,调用迅雷下载开放引擎下载文件

    迅雷下载开放引擎 迅雷下载开放引擎是迅雷开放下载技术的重要产品,依托迅雷强大的下载加速技术和将近4亿互联网用户覆盖,开放下载相关调用接口,为第三方客户端软件提供免费.高速.省带宽的下载加速服务. 官方 ...

  4. python调用迅雷下载引擎_python将下载地址转换成迅雷和qq旋风的下载地址

    迅雷和qq旋风下载,有加速和离线功能,很方面,我是在网上看到的原始地址和迅雷地址,qq旋风地址的转化原理,然后用python+pyqt写了一个客户端 原理: 迅雷: 迅雷下载地址="thun ...

  5. python调用迅雷下载

    from win32com.client import Dispatch o = Dispatch("ThunderAgent.Agent64.1") #o = Dispatch( ...

  6. C#调用迅雷下载,调用迅雷影音播放

    方法很多种,这里介绍一种,通过命令行参数调用. try{string thunderPath = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Cl ...

  7. c# 调用迅雷下载漫画

    鉴于家里网速的问题,上同人の侍这个工口网站很慢而且提心吊胆而且一页一页的翻着很麻烦~于是出现了同人の侍专用漫画下载器~ALPHA版 同人の侍网址:http://samurai3.net/ 已完成功能: ...

  8. 按键精灵调用迅雷下载文件

    Set ThunderAgent = CreateObject("ThunderAgent.Agent")         '建立迅雷接口对象 ThunderAgent.AddTa ...

  9. 网页调用迅雷下载文件

    下面是设置迅雷专用下载链接的JAV代码 Javascript代码: 1 <!-- JavaScript专用链代码 --> 2 3 <script src="http://p ...

最新文章

  1. linux tftp上传文件失败的原因
  2. 密码篇——对称加密—AES
  3. ACM-ICPC 2018 徐州赛区网络预赛
  4. 主流mes厂商_MES为什么可以成为企业核心
  5. 手动编译php,手动编译安装php7的方式
  6. 【网络信息安全】网络安全基础
  7. Atitit 语言分类 形式语言 目录 1. 形式语言(英语:Formal language)是用精确的数学或机器可处理的公式定义的语言。 1 1.1. 形式语言理论是用数学方法研究自然语言(如英语
  8. 【免费分享】收集整理的117套各类微信小程序模板源码分享
  9. [小O地图-图表] - 制作全国行政区图表
  10. C++中的取地址符()
  11. vtk 中vtkMapper的各函数解析
  12. 怎么访问云服务器上的图片
  13. 积分商城搭建的要点与优势有哪些?
  14. 8_gin日拱一足---异步和同步
  15. java pdf库_Java中常用的操作PDF的类库
  16. 分布式系统统一身份认证
  17. 数仓存在的意义价值及分层的好处
  18. 时间计算题100道_搞定一建经济中让你抓耳挠腮的计算题(1)
  19. [转]十年一覺程設夢[完整版]
  20. 2023年天津财经大学珠江学院专升本管理学原理专业考试大纲

热门文章

  1. 国产操作系统 鲲鹏+中标麒麟V7搭建qemu-kvm虚拟机安装银河麒麟V10
  2. 杭州嘉云数据面试题(Club Factory)
  3. week2:History: The First Internet - NSFNet
  4. 案例10:设置商业服务网点的高层住宅防火案例分析
  5. 微信文本信息a标签无效
  6. HKC神盾显示器MG27Q - 电竞玩家不可错过的性价比之选
  7. Python- GUI(Tkinter)
  8. bootstrapr表格父子框_bootstrap-table的基本使用方法和属性
  9. 小猪佩奇网页 html源码 期末大作业 课程设计
  10. 非常好看的网址导航_以及热点热搜影视等排行榜源码