程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB.NET >> VB.NET編程調用迅雷下載文件

VB.NET編程調用迅雷下載文件

編輯:VB.NET

VB.NET編程調用迅雷下載文件。本站提示廣大學習愛好者:(VB.NET編程調用迅雷下載文件)文章只能為提供參考,不一定能成為您想要的結果。以下是VB.NET編程調用迅雷下載文件正文


首先確保電腦曾經裝置訊雷,翻開VS.NET 點擊菜單:項目->添加援用->COM->添加對ThunderAgent 1.0 Type Library的援用。

1.創立訊雷調用對象

Private ThunderEng As New THUNDERAGENTLib.Agent'創立訊雷調用對象

ThunderEng.AddTask("下載地址", "另存文件名", "保管目錄","義務正文","援用地址","開端形式", "只從原始地址下載","從原始地址下載線程數") '添加下載義務

ThunderEng.CommitTasks()'提交下載義務

2.運用訊雷調用對象查詢下載義務信息

sFileSize = ThunderEng.GetTaskInfo(txtURL.Text, "FileSize")'獲取下載文件大小

sDownedSize = ThunderEng.GetTaskInfo(txtURL.Text, "CompletedSize")'獲取已完成大小

sFileName = ThunderEng.GetTaskInfo(txtURL.Text, "FileName")'獲取文件名

二、迅雷平台接口函數定義

取得信息

1. BSTR GetInfo(BSTR pInfoName)

功用:取得迅雷或平台相關信息

參數:

參數名 含義 pInfoName 信息稱號,有如下4種

◆“ThunderExists”:迅雷能否存在

◆“ThunderRunning”:迅雷能否運轉

◆“ThunderVersion”:迅雷版本號

◆“PlatformVersion”:平台版本號

前往值:前往值是字符串與參數pInfoName有對應關系

參數 前往值 “ThunderExists” “true”存在,“false”不存在 “ThunderRunning” “true” 運轉中, “false”未運轉 “ThunderVersion” 迅雷版本號 “x.x.x.x” “PlatformVersion” 平台版本號 “x.x.x.x”

2. HRESULT GetInfoStruct(INT pInfo)

功用:獲取迅雷或平台相關全部信息

參數:

參數名 含義 pInfo 其實是THUNDER_INFO類型的構造指針,調用前把它轉換為INT類型;調用後構造中將填充平台信息,定義如下:

typedef struct _THUNDER_INFO

{

BOOL bThunderExists;

BOOL bThunderRunning;

CHAR szThunderVersion[32];

CHAR szPlatformVersion[32];

} THUNDER_INFO;

函數調用後,構造中將填充相應的信息。

前往值:

0 獲取成功 非0 獲取失敗

義務操作

3. 參加義務

HRESULT AddTask

(BSTR pURL,

BSTR pFileName = "",

BSTR pPath = "",

BSTR pComments = "",

BSTR pReferURL = "",

INT nStartMode = -1,

INT nOnlyFromOrigin = 0,

INT nOriginThreadCount = -1);

功用:

往平台參加下載義務信息,此時髦未表現到迅雷中

參數:

參數名 含義 pURL 目的URL,必需參數 pFileName 另存稱號,默許為空,表示由迅雷處置,可選參數 pPath 存儲目錄,默許為空,表示由迅雷處置,可選參數 pComments 下載正文,默許為空,可選參數 pReferURL 援用頁URL,默許為空,可選參數 nStartMode 開端形式,0手工開端,1立刻開端,默許為-1,表示由迅雷處置,可選參數 nOnlyFromOrigin 能否只從原始URL下載,1只從原始URL下載,0多資源下載,默許為0,可選參數 nOriginThreadCount 原始地址下載線程數,范圍1-10,默許為-1,表示由迅雷處置,可選參數

4. 開端義務

HRESULT CommitTaskss()

功用:

把AddTask所參加的下載義務信息真正提交到迅雷中停止下載,並從平台中刪除

留意:假如AddTask添加的義務沒有被提交沒有被取消(調用CancelTasks),則Agent對象析構時會阻塞,所以調用者不應該殘留一些沒有被提交或許取消的義務,以防止腳本執行者中止呼應。

5. 取消義務

HRESULT CancelTasks()

功用:

取消平台中一切由AddTask所參加的下載義務信息

6. 查詢義務信息

BSTR GetTaskInfo(BSTR pURL,BSTR pInfoName);

參數:

參數名 含義 pURL 所要查詢的下載URL信息 pInfoName 形態稱號,有如下幾種

◆“Exists”:pURL能否在迅雷的義務列表

◆“Path”:存儲目錄

◆“FileName”:文件稱號

◆“FileSize”:文件大小

◆“CompletedSize”:已下載大小

◆“Percent”:下載進度

◆“Status”:義務形態

前往值: 前往值是字符

串與參數pInfoName有對應關系

參數 前往值 “Exists” ”true”存在,”false”不存在 “Path” 存儲目錄,最後帶反斜線,例:C:TDDownload “FileName” 文件稱號 “FileSize” 文件大小,以字節為單位,0表示大小未知 “CompletedSize” 已下載大小,以字節為單位 “Percent” 下載進度,帶1位小數,例:70.0 “Status” 義務形態,有以下6種形態

。“running”: 運轉形態

。“stopped”: 中止形態

。“failed”: 失敗形態

。“success”: 成功形態

。“creatingfile”:正在創立數據文件

。“connecting”: 正在銜接

7. GetTaskInfoStruct(INT pTaskInfo)

功用:查詢一個義務的一切信息

參數名 含義 pTaskInfo 其實是THUNDER_TASKINFO類型的構造指針,調用前把它轉換為INT類型;調用後構造中將填充平台信息,定義如下:

typedef struct _THUNDER_TASKINFO

{

CHAR szURL[1024]; // 義務URL,事後填充

BOOL bTaskExists; // 義務能否存在,TRUE為存在

CHAR szPath[256]; // 下載的本地保管途徑

CHAR szFileName[256]; // 本地文件名

ULONGLONG nFileSize; // 文件大小

ULONGLONG nCompletedSize; // 已完成的大小

CHAR szPercent[16]; // 完成的百分數,用 “56.8”的格式

CHAR szStatus[16]; // 以後形態,定義同GetTaskInfo函數

} THUNDER_TASKINFO;

調用者先填充構造中的szURL成員,來指定需求查詢的義務的URL,然後等函數前往後就可以從其他成員中獲得該義務的信息。

本例一切代碼:

Imports System
Imports System.Text
Public Class frmThunderClass frmThunder
Private _iStartMode As Integer '訊雷義務下載開端形式
Private ThunderEng As New THUNDERAGENTLib.Agent '創立訊雷調用對象
Private Sub frmThunder_Load()Sub frmThunder_Load(ByVal sender As System.Object,

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

ByVal e As System.EventArgs) Handles btnCancel.Click
Close()
End Sub
'開端下載義務
Private Sub btnStartDown_Click()Sub btnStartDown_Click(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles btnStartDown.Click
Dim iOnlyFromOrigin, iOriginThreadCount As Integer
iOnlyFromOrigin = IIf(chkOnlyFromOrigin.Checked = True, 1, 0)
iOriginThreadCount = CInt(txtOriginThreadCounts.Text)
If chkDefault.Checked Then
iOriginThreadCount = -1
End If
ThunderEng.AddTask(txtURL.Text, txtSaveAsFileName.Text, txtSaveDir.Text,

txtComment.Text, _ txtReferencePage.Text, _iStartMode, iOnlyFromOrigin,

iOriginThreadCount)
ThunderEng.CommitTasks()
Timer1.Enabled = True
End Sub
Private Sub radMaual_Click()Sub radMaual_Click(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles radMaual.Click, radImmediate.Click,

radDefault.Click
Dim rad As RadioButton = CType(sender, RadioButton)
_iStartMode = CInt(rad.Tag)
End Sub
'當義務開端時定時查詢義務下載信息
Private Sub Timer1_Tick()Sub Timer1_Tick(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles Timer1.Tick
Dim sFileSize, sDownedSize, sStatus, sFileName, sPercent As String
Try
sStatus = ThunderEng.GetTaskInfo(txtURL.Text, "Status")
sFileSize = ThunderEng.GetTaskInfo(txtURL.Text, "FileSize")
sDownedSize = ThunderEng.GetTaskInfo(txtURL.Text, "CompletedSize")
sFileName = ThunderEng.GetTaskInfo(txtURL.Text, "FileName")
lblDownedSize.Text = String.Format(lblDownedSize.Tag, sDownedSize)
lblFileSize.Text = String.Format(lblFileSize.Tag, sFileSize)
lblTaskStatus.Text = String.Format(lblTaskStatus.Tag, sStatus)
lblFilename.Text = String.Format(lblFilename.Tag, sFileName)
sPercent = ThunderEng.GetTaskInfo(txtURL.Text, "Percent") '獲取下載百分比
lblProgress.Text = String.Format(lblProgress.Tag,

sPercent.Remove(3, Len(sPercent) - 3))
Catch ex As Exception
End Try
End Sub
Private Sub chkOnlyFromOrigin_CheckedChanged_1()Sub

chkOnlyFromOrigin_CheckedChanged_1(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles chkOnlyFromOrigin.CheckedChanged
Panel1.Enabled = chkOnlyFromOrigin.Checked
End Sub
Private Sub GroupBox1_Enter()Sub GroupBox1_Enter(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles GroupBox1.Enter
End Sub
End Class

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved