“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, txtSaveDir.Text, txtComment.Text, _ txtReferencePage.Text,
_iStartMode, 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) radDefault.Click
Dim rad As RadioButton = CType(sender, RadioButton)
Handles
radMaual.Click,
radImmediate.Click, iOnlyFromOrigin, txtSaveAsFileName.Text,
_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,