admin管理员组

文章数量:1619725

概述

有时候我们需要执行一些无人职守的下载任务,迅雷有批量下载功能,但需要添加下载地址,然后执行下载,开放类库允许我们通过代码的方式添加,可玩性就高的多了

类库

Interop.ThunderAgentLib.dll

使用此类库并不能直接执行下载,一定要确保本机已安装迅雷,这个类库只是帮助我们自定义的添加下载任务到迅雷里。

方法属性

AddTask()

AddTask("pURL ", " pFileName ", " pPath “,” pComments “,” pReferURL “,” nStartMode ", " nOnlyFromOrigin “,” nOriginThreadCount ")

参数名含义
pURL目标URL,必须参数
pFileName另存名称,默认为空,表示由迅雷处理,可选参数
pPath存储目录,默认为空,表示由迅雷处理,可选参数
pComments下载注释,默认为空,可选参数
pReferURL引用页URL,默认为空,可选参数
nStartMode开始模式,0手工开始,1立即开始,默认为-1,表示由迅雷处理,可选参数
nOnlyFromOrigin是否只从原始URL下载,1只从原始URL下载,0多资源下载,默认为0,可选参数
nOriginThreadCount原始地址下载线程数,范围1-10,默认为-1,表示由迅雷处理,可选参数

CommitTasks( )

默认执行此命名会打开迅雷添加下载任务对话框,如果要实现无人职守,可使用异步提交 CommitTasks2(1)

实例

加入参考

下载或找到 Interop.ThunderAgentLib.dll 封装文件,将其拷贝到debug目录下

在专案参考中找到dll文件并加入参考

新增窗体并引入参考

using ThunderAgentLib;

根据地址下载文件

//定义存储路径
string sPath = @"D:\Program Files\DownSave\";
//定义下载地址
string sUrl = "";
//初使化一个下载实例
AgentClass agent = new AgentClass();
//添加下载任务
agent.AddTask(sUrl, "", sPath, "", "", 0, 0, 5);
//执行下载
agent.CommitTasks2(1);

读取下载地址文件批量下载

//定义下载路径
string sPath = @"D:\Program Files\DownSave\";
//地址文件所在位置,目录下有多个地址文件
string dPath = @"D:\Program Files\DownSave\files\";
DirectoryInfo dSource = new DirectoryInfo(dPath);
foreach (FileInfo fi in dSource.GetFiles())
{
    //Agent agent = new Agent();
    AgentClass agent = new AgentClass();
	//从地址文件中逐行读取下载地址
    StreamReader sr = new StreamReader(fi.FullName);
    string sLines = "";
    string sLine = "";
    while ((sLine = sr.ReadLine()) != null)
    {
        sLines += sLine + "\r\n";
    }
    //将地址字串转为数组
    string[] sUrls = sLines.Replace("\r\n", "@").Split('@');
    foreach (string sUrl in sUrls)
    {
        if (sUrl == "") continue;
        //增加下载任务
        agent.AddTask(sUrl, "", sPath + fi.Name.Replace(fi.Extension, "") + @"\", "", "", 0, 0, 5);
        //agent.CommitTasks();
    }
    //执行下载
    agent.CommitTasks2(1);
    //将地址文件名称写入剪贴板
    Clipboard.SetText(fi.Name.Replace(fi.Extension, ""));
    MessageBox.Show(fi.Name.Replace(fi.Extension, ""));
}
MessageBox.Show("ok");

本文标签: 迅雷批量ThunderAgentLibdll