Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

返回列表 發(fā)新帖
查看: 9990|回復(fù): 7
打印 上一主題 下一主題

【轉(zhuǎn)】迅雷API接口

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2014-4-15 14:31:31 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

附:其中用到了AddTask這個(gè)方法,這個(gè)方法的參數(shù)如下:AddTask("下載地址", "另存文件名", "保存目錄","任務(wù)注釋","引用地址","開(kāi)始模式", "只從原始地址下載","從原始地址下載線程數(shù)") 。

參數(shù)名含義
pURL目標(biāo)URL,必須參數(shù)
pFileName另存名稱(chēng),默認(rèn)為空,表示由迅雷處理,可選參數(shù)
pPath存儲(chǔ)目錄,默認(rèn)為空,表示由迅雷處理,可選參數(shù)
pComments下載注釋?zhuān)J(rèn)為空,可選參數(shù)
pReferURL引用頁(yè)URL,默認(rèn)為空,可選參數(shù)
nStartMode開(kāi)始模式,0手工開(kāi)始,1立即開(kāi)始,默認(rèn)為-1,表示由迅雷處理,可選參數(shù)
nOnlyFromOrigin是否只從原始URL下載,1只從原始URL下載,0多資源下載,默認(rèn)為0,可選參數(shù)
nOriginThreadCount原始地址下載線程數(shù),范圍1-10,默認(rèn)為-1,表示由迅雷處理,可選參數(shù)

Public Function 迅雷下載(網(wǎng)址 As String, Optional 保存路徑 As String, Optional 另存為文件名 As String, Optional 下載注釋 As String, Optional 引用頁(yè) As String, Optional 開(kāi)始模式 As Long = 1, Optional 否只從原始網(wǎng)址下載 As Boolean = False, Optional 原始地址下載線程數(shù) As Long = 5) As Boolean
On Error GoTo Err
Dim ThunderAgent
'nStartMode開(kāi)始模式,0手工開(kāi)始,1立即開(kāi)始,默認(rèn)為-1,表示由迅雷處理,可選參數(shù)
'nOnlyFromOrigin是否只從原始URL下載,1只從原始URL下載,0多資源下載,默認(rèn)為0,可選參數(shù)
'nOriginThreadCount原始地址下載線程數(shù),范圍1-10,默認(rèn)為-1,表示由迅雷處理,可選參數(shù)
Set ThunderAgent = CreateObject("ThunderAgent.Agent.1")
If ThunderAgent Is Nothing Then GoTo Err
Call ThunderAgent.AddTask(網(wǎng)址, 另存為文件名, 保存路徑, 下載注釋, 引用頁(yè), 開(kāi)始模式, 否只從原始網(wǎng)址下載, 原始地址下載線程數(shù))
Call ThunderAgent.CommitTasks2(1)
Set ThunderAgent = Nothing
迅雷下載 = True
Exit Function
Err:
迅雷下載 = False
End Function


Call 迅雷下載("http://www.baidu.com/index.html", "c:\", "index.html", "http://www.baidu.com")


首先確保電腦已經(jīng)安裝訊雷,打開(kāi)VS.NET 點(diǎn)擊菜單:項(xiàng)目->添加引用->COM->添加對(duì)ThunderAgent 1.0

Type Library的引用
  1.創(chuàng)建訊雷調(diào)用對(duì)象

Private ThunderEng As New THUNDERAGENTLib.Agent'創(chuàng)建訊雷調(diào)用對(duì)象

ThunderEng.AddTask("下載地址", "另存文件名", "保存目錄","任務(wù)注釋","引用地址","開(kāi)始模式", "

只從原始地址下載","從原始地址下載線程數(shù)") '添加下載任務(wù)

ThunderEng.CommitTasks()'提交下載任務(wù)


  2.使用訊雷調(diào)用對(duì)象查詢下載任務(wù)信息

sFileSize = ThunderEng.GetTaskInfo(txtURL.Text, "FileSize")'獲取下載文件大小
sDownedSize = ThunderEng.GetTaskInfo(txtURL.Text, "CompletedSize")'獲取已完成大小
sFileName = ThunderEng.GetTaskInfo(txtURL.Text, "FileName")'獲取文件名

  二、迅雷平臺(tái)接口函數(shù)定義

  獲得信息

  1. BSTR GetInfo(BSTR pInfoName)

  功能:獲得迅雷或平臺(tái)相關(guān)信息

  參數(shù):

參數(shù)名 含義
pInfoName 信息名稱(chēng),有如下4種
!癟hunderExists”:迅雷是否存在
。“ThunderRunning”:迅雷是否運(yùn)行
。“ThunderVersion”:迅雷版本號(hào)
!癙latformVersion”:平臺(tái)版本號(hào)

  返回值:返回值是字符串與參數(shù)pInfoName有對(duì)應(yīng)關(guān)系

參數(shù) 返回值
“ThunderExists” “true”存在,“false”不存在
“ThunderRunning” “true” 運(yùn)行中, “false”未運(yùn)行
“ThunderVersion” 迅雷版本號(hào) “x.x.x.x”
“PlatformVersion” 平臺(tái)版本號(hào) “x.x.x.x”

  2. HRESULT GetInfoStruct(INT pInfo)

  功能:獲取迅雷或平臺(tái)相關(guān)全部信息

  參數(shù):

參數(shù)名 含義
pInfo 其實(shí)是THUNDER_INFO類(lèi)型的結(jié)構(gòu)指針,調(diào)用前把它轉(zhuǎn)換為INT類(lèi)型;調(diào)用后結(jié)構(gòu)中將填充平臺(tái)信息

,定義如下:
typedef struct _THUNDER_INFO
{
BOOL bThunderExists;
BOOL bThunderRunning;
CHAR szThunderVersion[32];
CHAR szPlatformVersion[32];
} THUNDER_INFO;

函數(shù)調(diào)用后,結(jié)構(gòu)中將填充相應(yīng)的信息。

  返回值:

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);

  功能:

  往平臺(tái)加入下載任務(wù)信息,此時(shí)尚未體現(xiàn)到迅雷中

  參數(shù):

參數(shù)名 含義
pURL 目標(biāo)URL,必須參數(shù)
pFileName 另存名稱(chēng),默認(rèn)為空,表示由迅雷處理,可選參數(shù)
pPath 存儲(chǔ)目錄,默認(rèn)為空,表示由迅雷處理,可選參數(shù)
pComments 下載注釋?zhuān)J(rèn)為空,可選參數(shù)
pReferURL 引用頁(yè)URL,默認(rèn)為空,可選參數(shù)
nStartMode 開(kāi)始模式,0手工開(kāi)始,1立即開(kāi)始,默認(rèn)為-1,表示由迅雷處理,可選參數(shù)
nOnlyFromOrigin 是否只從原始URL下載,1只從原始URL下載,0多資源下載,默認(rèn)為0,可選參數(shù)
nOriginThreadCount 原始地址下載線程數(shù),范圍1-10,默認(rèn)為-1,表示由迅雷處理,可選參數(shù)

  4. 開(kāi)始任務(wù)

  HRESULT CommitTaskss()

  功能:

  把AddTask所加入的下載任務(wù)信息真正提交到迅雷中進(jìn)行下載,并從平臺(tái)中刪除

  注意:如果AddTask添加的任務(wù)沒(méi)有被提交沒(méi)有被取消(調(diào)用CancelTasks),則Agent對(duì)象析構(gòu)時(shí)會(huì)

阻塞,所以調(diào)用者不應(yīng)該殘留一些沒(méi)有被提交或者取消的任務(wù),以避免腳本執(zhí)行者停止響應(yīng)。

  5. 取消任務(wù)

  HRESULT CancelTasks()

  功能:

  取消平臺(tái)中所有由AddTask所加入的下載任務(wù)信息

  6. 查詢?nèi)蝿?wù)信息

  BSTR GetTaskInfo(BSTR pURL,BSTR pInfoName);

  參數(shù):

參數(shù)名 含義
pURL 所要查詢的下載URL信息
pInfoName 狀態(tài)名稱(chēng),有如下幾種

。“Exists”:pURL是否在迅雷的任務(wù)列表
。“Path”:存儲(chǔ)目錄
!癋ileName”:文件名稱(chēng)
!癋ileSize”:文件大小
!癈ompletedSize”:已下載大小
!癙ercent”:下載進(jìn)度
!癝tatus”:任務(wù)狀態(tài)

  返回值: 返回值是字符串與參數(shù)pInfoName有對(duì)應(yīng)關(guān)系

參數(shù) 返回值
“Exists” ”true”存在,”false”不存在
“Path” 存儲(chǔ)目錄,最后帶反斜線\,例:C:\TDDownload\
“FileName” 文件名稱(chēng)
“FileSize” 文件大小,以字節(jié)為單位,0表示大小未知
“CompletedSize” 已下載大小,以字節(jié)為單位
“Percent” 下載進(jìn)度,帶1位小數(shù),例:70.0
“Status” 任務(wù)狀態(tài),有以下6種狀態(tài)

!皉unning”: 運(yùn)行狀態(tài)
!皊topped”: 停止?fàn)顟B(tài)
!癴ailed”: 失敗狀態(tài)
。“success”: 成功狀態(tài)
。“creatingfile”:正在創(chuàng)建數(shù)據(jù)文件
!癱onnecting”: 正在連接

  7. GetTaskInfoStruct(INT pTaskInfo)

  功能:查詢一個(gè)任務(wù)的所有信息

參數(shù)名 含義
pTaskInfo 其實(shí)是THUNDER_TASKINFO類(lèi)型的結(jié)構(gòu)指針,調(diào)用前把它轉(zhuǎn)換為INT類(lèi)型;調(diào)用后結(jié)構(gòu)中將填充

平臺(tái)信息,定義如下:

typedef struct _THUNDER_TASKINFO
{
CHAR szURL[1024]; // 任務(wù)URL,預(yù)先填充
BOOL bTaskExists; // 任務(wù)是否存在,TRUE為存在
CHAR szPath[256]; // 下載的本地保存路徑
CHAR szFileName[256]; // 本地文件名
ULONGLONG nFileSize; // 文件大小
ULONGLONG nCompletedSize; // 已完成的大小
CHAR szPercent[16]; // 完成的百分?jǐn)?shù),用 “56.8”的格式
CHAR szStatus[16]; // 當(dāng)前狀態(tài),定義同GetTaskInfo函數(shù)
} THUNDER_TASKINFO;

調(diào)用者先填充結(jié)構(gòu)中的szURL成員,來(lái)指定需要查詢的任務(wù)的URL,然后等函數(shù)返回后就可以從其他成員中

取得該任務(wù)的信息。
本例所有代碼



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱
2#
 樓主| 發(fā)表于 2014-4-15 14:31:46 | 只看該作者
  1. Imports System
  2. Imports System.Text
  3. Public Class frmThunderClass frmThunder
  4. Private _iStartMode As Integer '訊雷任務(wù)下載開(kāi)始模式
  5. Private ThunderEng As New THUNDERAGENTLib.Agent '創(chuàng)建訊雷調(diào)用對(duì)象
  6. Private Sub frmThunder_Load()Sub frmThunder_Load(ByVal sender As System.Object, ByVal e As

  7. System.EventArgs) Handles MyBase.Load
  8. End Sub
  9. Private Sub btnCancel_Click()Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As

  10. System.EventArgs) Handles btnCancel.Click
  11. Close()
  12. End Sub
  13. '開(kāi)始下載任務(wù)
  14. Private Sub btnStartDown_Click()Sub btnStartDown_Click(ByVal sender As System.Object, ByVal

  15. e As System.EventArgs) Handles btnStartDown.Click
  16. Dim iOnlyFromOrigin, iOriginThreadCount As Integer
  17. iOnlyFromOrigin = IIf(chkOnlyFromOrigin.Checked = True, 1, 0)
  18. iOriginThreadCount = CInt(txtOriginThreadCounts.Text)
  19. If chkDefault.Checked Then
  20. iOriginThreadCount = -1
  21. End If
  22. ThunderEng.AddTask(txtURL.Text, txtSaveAsFileName.Text, txtSaveDir.Text, txtComment.Text, _
  23. txtReferencePage.Text, _iStartMode, iOnlyFromOrigin, iOriginThreadCount)
  24. ThunderEng.CommitTasks()
  25. Timer1.Enabled = True
  26. End Sub


  27. Private Sub radMaual_Click()Sub radMaual_Click(ByVal sender As System.Object, ByVal e As

  28. System.EventArgs) Handles radMaual.Click, radImmediate.Click, radDefault.Click
  29. Dim rad As RadioButton = CType(sender, RadioButton)
  30. _iStartMode = CInt(rad.Tag)
  31. End Sub
  32. '當(dāng)任務(wù)開(kāi)始時(shí)定時(shí)查詢?nèi)蝿?wù)下載信息
  33. Private Sub Timer1_Tick()Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As

  34. System.EventArgs) Handles Timer1.Tick
  35. Dim sFileSize, sDownedSize, sStatus, sFileName, sPercent As String
  36. Try
  37. sStatus = ThunderEng.GetTaskInfo(txtURL.Text, "Status")
  38. sFileSize = ThunderEng.GetTaskInfo(txtURL.Text, "FileSize")
  39. sDownedSize = ThunderEng.GetTaskInfo(txtURL.Text, "CompletedSize")
  40. sFileName = ThunderEng.GetTaskInfo(txtURL.Text, "FileName")
  41. lblDownedSize.Text = String.Format(lblDownedSize.Tag, sDownedSize)
  42. lblFileSize.Text = String.Format(lblFileSize.Tag, sFileSize)
  43. lblTaskStatus.Text = String.Format(lblTaskStatus.Tag, sStatus)
  44. lblFilename.Text = String.Format(lblFilename.Tag, sFileName)
  45. sPercent = ThunderEng.GetTaskInfo(txtURL.Text, "Percent") '獲取下載百分比
  46. lblProgress.Text = String.Format(lblProgress.Tag, sPercent.Remove(3, Len(sPercent) - 3))
  47. Catch ex As Exception
  48. End Try
  49. End Sub
  50. Private Sub chkOnlyFromOrigin_CheckedChanged_1()Sub chkOnlyFromOrigin_CheckedChanged_1(ByVal

  51. sender As System.Object, ByVal e As System.EventArgs) Handles

  52. chkOnlyFromOrigin.CheckedChanged
  53. Panel1.Enabled = chkOnlyFromOrigin.Checked
  54. End Sub
  55. Private Sub GroupBox1_Enter()Sub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As

  56. System.EventArgs) Handles GroupBox1.Enter
  57. End Sub
  58. End Class

  59. 進(jìn)入工具--配置--高級(jí),把 通過(guò)IE右鍵菜單 “使用迅雷下載”添加任務(wù) 這個(gè)選項(xiàng)前面的勾去掉。
  60. 保持迅雷開(kāi)啟狀態(tài),這時(shí)候執(zhí)行上面的腳本,就不會(huì)出現(xiàn)那個(gè)確認(rèn)添加任務(wù)的對(duì)話框了
復(fù)制代碼


點(diǎn)評(píng)

這個(gè)是VB.ent 注明一下吧  發(fā)表于 2014-4-16 13:23

點(diǎn)擊這里給我發(fā)消息

3#
發(fā)表于 2014-4-18 23:06:06 | 只看該作者
高人啊
回復(fù)

使用道具 舉報(bào)

4#
發(fā)表于 2014-4-29 17:24:57 | 只看該作者

小電電 這個(gè)要引用什么 的 寫(xiě)明一下
5#
發(fā)表于 2014-4-29 17:38:12 | 只看該作者
C#調(diào)用迅雷下載
1.首先導(dǎo)入DLL
添加引用 -> COM -> ThunderAgent 1.0 Type Library(前提是已安裝迅雷)
或者C:\Program Files\Thunder Network\Thunder\ComDlls\ThunderAgent5.9.18.1364.dll(路徑可能有所不同) 以5.9的版本為列
2.代碼:
THUNDERAGENTLib.AgentClass agent = new THUNDERAGENTLib.AgentClass();//創(chuàng)建對(duì)象
//添加任務(wù):下載http://www.baidu.com/index.html這個(gè)文件至C:\baidu.html,
//沒(méi)有注釋?zhuān)瑳](méi)有引用,立即開(kāi)始,從多資源下載,原始資源線程5
agent.AddTask("http://www.baidu.com/index.html", "index.html", "C:\\", "", "", 1, 0, 5);
agent.CommitTasks();//提交
3.修改迅雷配置
此時(shí)代碼部分完成,但是運(yùn)行的時(shí)候會(huì)彈出窗口確認(rèn)下載。
如果想跳過(guò)這個(gè)窗口,需要在迅雷里面配置:工具》配置》高級(jí)》通過(guò)IE右鍵菜單“使用迅雷下載”添加任務(wù),將這項(xiàng)去掉就可以了
附:方法詳細(xì)說(shuō)明
void AddTask(string pURL, string pFileName, string pPath, string pComments, string pReferURL, intnStartMode, int nOnlyFromOrigin, intnOriginThreadCount);
參數(shù)名含義pURL目標(biāo)URL,必須參數(shù)pFileName另存名稱(chēng),默認(rèn)為空,表示由迅雷處理,可選參數(shù)pPath存儲(chǔ)目錄,默認(rèn)為空,表示由迅雷處理,可選參數(shù)pComments下載注釋?zhuān)J(rèn)為空,可選參數(shù)pReferURL引用頁(yè)URL,默認(rèn)為空,可選參數(shù)nStartMode開(kāi)始模式,0手工開(kāi)始,1立即開(kāi)始,默認(rèn)為-1,表示由迅雷處理,可選參數(shù)nOnlyFromOrigin是否只從原始URL下載,1只從原始URL下載,0多資源下載,默認(rèn)為0,可選參數(shù)nOriginThreadCount原始地址下載線程數(shù),范圍1-10,默認(rèn)為-1,表示由迅雷處理,可選參數(shù)
6#
 樓主| 發(fā)表于 2014-4-29 17:43:40 | 只看該作者
聞啟學(xué) 發(fā)表于 2014-4-29 17:24
小電電 這個(gè)要引用什么 的 寫(xiě)明一下

先綁定,就引用
7#
發(fā)表于 2014-5-10 12:57:36 | 只看該作者
這是VB.NET源碼啊。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2025-7-17 05:51 , Processed in 0.095109 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表