[转]程序实现调用迅雷(以C#为例)
1.首先導(dǎo)入DLL
添加引用 -> COM -> ThunderAgent 1.0 Type Library(前提是已安裝迅雷)
或者C:\Program Files\Thunder Network\Thunder\ComDlls\ThunderAgent_Now.dll(路徑可能有所不同)
2.代碼:
THUNDERAGENTLib.AgentClass agent = new THUNDERAGENTLib.AgentClass();//創(chuàng)建對象
//添加任務(wù):下載http://www.baidu.com/index.html這個(gè)文件至C:\baidu.html,
//沒有注釋,沒有引用,立即開始,從多資源下載,原始資源線程5
agent.AddTask("http://www.baidu.com/index.html", "index.html", "C:\\", "", "", 1, 0, 5);
agent.CommitTasks2(1);//提交
3.修改迅雷配置
此時(shí)代碼部分完成,但是運(yùn)行的時(shí)候會彈出窗口確認(rèn)下載。
如果想跳過這個(gè)窗口,需要在迅雷里面配置:工具》配置》高級》通過IE右鍵菜單“使用迅雷下載”添加任務(wù),將這項(xiàng)去掉就可以了
附:方法詳細(xì)說明
void AddTask(string pURL, string pFileName, string pPath, string pComments, string pReferURL, int nStartMode, int nOnlyFromOrigin, int nOriginThreadCount);
| 參數(shù)名 | 含義 |
| pURL | 目標(biāo)URL,必須參數(shù) |
| pFileName | 另存名稱,默認(rèn)為空,表示由迅雷處理,可選參數(shù) |
| pPath | 存儲目錄,默認(rèn)為空,表示由迅雷處理,可選參數(shù) |
| pComments | 下載注釋,默認(rèn)為空,可選參數(shù) |
| pReferURL | 引用頁URL,默認(rèn)為空,可選參數(shù) |
| nStartMode | 開始模式,0手工開始,1立即開始,默認(rèn)為-1,表示由迅雷處理,可選參數(shù) |
| nOnlyFromOrigin | 是否只從原始URL下載,1只從原始URL下載,0多資源下載,默認(rèn)為0,可選參數(shù) |
| nOriginThreadCount | 原始地址下載線程數(shù),范圍1-10,默認(rèn)為-1,表示由迅雷處理,可選參數(shù) |
?
?
三、迅雷的開發(fā)文檔
獲得信息
1. BSTR GetInfo(BSTR pInfoName)
功能:獲得迅雷或平臺相關(guān)信息
參數(shù):
| 參數(shù)名 | 含義 |
| pInfoName | 信息名稱,有如下4種 |
返回值:返回值是字符串與參數(shù)pInfoName有對應(yīng)關(guān)系
| 參數(shù) | 返回值 |
| “ThunderExists” | “true”存在,“false”不存在 |
| “ThunderRunning” | “true” 運(yùn)行中, “false”未運(yùn)行 |
| “ThunderVersion” | 迅雷版本號 “x.x.x.x” |
| “PlatformVersion” | 平臺版本號 “x.x.x.x” |
2. HRESULT GetInfoStruct(INT pInfo)
功能:獲取迅雷或平臺相關(guān)全部信息
參數(shù):
| 參數(shù)名 | 含義 |
| pInfo | 其實(shí)是THUNDER_INFO類型的結(jié)構(gòu)指針,調(diào)用前把它轉(zhuǎn)換為INT類型;調(diào)用后結(jié)構(gòu)中將填充平臺信息,定義如下: |
返回值:
| 0 | 獲取成功 |
| 非0 | 獲取失敗 |
任務(wù)操作
3. 加入任務(wù)
HRESULT AddTask
(BSTR pURL,
BSTR pFileName = "",
BSTR pPath = "",
BSTR pComments = "",
BSTR pReferURL = "",
INT nStartMode = -1,
INT nOnlyFromOrigin = 0,
INT nOriginThreadCount = -1);
功能:
往平臺加入下載任務(wù)信息,此時(shí)尚未體現(xiàn)到迅雷中
參數(shù):
| 參數(shù)名 | 含義 |
| pURL | 目標(biāo)URL,必須參數(shù) |
| pFileName | 另存名稱,默認(rèn)為空,表示由迅雷處理,可選參數(shù) |
| pPath | 存儲目錄,默認(rèn)為空,表示由迅雷處理,可選參數(shù) |
| pComments | 下載注釋,默認(rèn)為空,可選參數(shù) |
| pReferURL | 引用頁URL,默認(rèn)為空,可選參數(shù) |
| nStartMode | 開始模式,0手工開始,1立即開始,默認(rèn)為-1,表示由迅雷處理,可選參數(shù) |
| nOnlyFromOrigin | 是否只從原始URL下載,1只從原始URL下載,0多資源下載,默認(rèn)為0,可選參數(shù) |
| nOriginThreadCount | 原始地址下載線程數(shù),范圍1-10,默認(rèn)為-1,表示由迅雷處理,可選參數(shù) |
4. 開始任務(wù)
HRESULT CommitTaskss()
功能:
把AddTask所加入的下載任務(wù)信息真正提交到迅雷中進(jìn)行下載,并從平臺中刪除
注意:如果AddTask添加的任務(wù)沒有被提交沒有被取消(調(diào)用CancelTasks),則Agent對象析構(gòu)時(shí)會阻塞,所以調(diào)用者不應(yīng)該殘留一些沒有被提交或者取消的任務(wù),以避免腳本執(zhí)行者停止響應(yīng)。
5. 取消任務(wù)
HRESULT CancelTasks()
功能:
取消平臺中所有由AddTask所加入的下載任務(wù)信息
6. 查詢?nèi)蝿?wù)信息
BSTR GetTaskInfo(BSTR pURL,BSTR pInfoName);
參數(shù):
| 參數(shù)名 | 含義 |
| pURL | 所要查詢的下載URL信息 |
| pInfoName | 狀態(tài)名稱,有如下幾種 |
返回值: 返回值是字符串與參數(shù)pInfoName有對應(yīng)關(guān)系
| 參數(shù) | 返回值 |
| “Exists” | ”true”存在,”false”不存在 |
| “Path” | 存儲目錄,最后帶反斜線",例:C:"TDDownload" |
| “FileName” | 文件名稱 |
| “FileSize” | 文件大小,以字節(jié)為單位,0表示大小未知 |
| “CompletedSize” | 已下載大小,以字節(jié)為單位 |
| “Percent” | 下載進(jìn)度,帶1位小數(shù),例:70.0 |
| “Status” | 任務(wù)狀態(tài),有以下6種狀態(tài) |
7. GetTaskInfoStruct(INT pTaskInfo)
功能:查詢一個(gè)任務(wù)的所有信息
| 參數(shù)名 | 含義 |
| pTaskInfo | 其實(shí)是THUNDER_TASKINFO類型的結(jié)構(gòu)指針,調(diào)用前把它轉(zhuǎn)換為INT類型;調(diào)用后結(jié)構(gòu)中將填充平臺信息,定義如下: |
轉(zhuǎn)載于:https://www.cnblogs.com/arongbest/archive/2009/08/19/1550005.html
總結(jié)
以上是生活随笔為你收集整理的[转]程序实现调用迅雷(以C#为例)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到掉牙好不好
- 下一篇: 【转】C# split 几种使用方法