VB.NET缂栫▼璋冪敤璁浄涓嬭浇鏂囦欢
鍙戝竷: 2008-6-26 23:07 | 浣滆: admin | 鏌ョ湅: 49娆
銆棣栧厛纭繚鐢佃剳宸茬粡瀹夎璁浄,鎵撳紑VS.NET 鐐瑰嚮鑿滃崟:椤圭洰->娣诲姞寮曠敤->COM->娣诲姞瀵筎hunderAgent 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")'鑾峰彇鏂囦欢鍚
銆銆浜屻佽繀闆峰钩鍙版帴鍙e嚱鏁板畾涔
銆銆鑾峰緱淇℃伅
銆銆1. BSTR GetInfo(BSTR pInfoName)
銆銆鍔熻兘锛氳幏寰楄繀闆锋垨骞冲彴鐩稿叧淇℃伅
銆銆鍙傛暟锛
鍙傛暟鍚 鍚箟
pInfoName 淇℃伅鍚嶇О锛屾湁濡備笅4绉
銆傗淭hunderExists鈥濓細杩呴浄鏄惁瀛樺湪
銆傗淭hunderRunning鈥濓細杩呴浄鏄惁杩愯
銆傗淭hunderVersion鈥濓細杩呴浄鐗堟湰鍙
銆傗淧latformVersion鈥濓細骞冲彴鐗堟湰鍙
銆銆杩斿洖鍊硷細杩斿洖鍊兼槸瀛楃涓蹭笌鍙傛暟pInfoName鏈夊搴斿叧绯
鍙傛暟 杩斿洖鍊
鈥淭hunderExists鈥 鈥渢rue鈥濆瓨鍦紝鈥渇alse鈥濅笉瀛樺湪
鈥淭hunderRunning鈥 鈥渢rue鈥 杩愯涓紝 鈥渇alse鈥濇湭杩愯
鈥淭hunderVersion鈥 杩呴浄鐗堟湰鍙 鈥渪.x.x.x鈥
鈥淧latformVersion鈥 骞冲彴鐗堟湰鍙 鈥渪.x.x.x鈥
銆銆2. HRESULT GetInfoStruct(INT pInfo)
銆銆鍔熻兘锛氳幏鍙栬繀闆锋垨骞冲彴鐩稿叧鍏ㄩ儴淇℃伅
銆銆鍙傛暟锛
鍙傛暟鍚 鍚箟
pInfo 鍏跺疄鏄疶HUNDER_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 寮曠敤椤礥RL锛岄粯璁や负绌猴紝鍙夊弬鏁
nStartMode 寮濮嬫ā寮忥紝0鎵嬪伐寮濮嬶紝1绔嬪嵆寮濮嬶紝榛樿涓-1锛岃〃绀虹敱杩呴浄澶勭悊锛屽彲閫夊弬鏁
nOnlyFromOrigin 鏄惁鍙粠鍘熷URL涓嬭浇锛1鍙粠鍘熷URL涓嬭浇锛0澶氳祫婧愪笅杞斤紝榛樿涓0锛屽彲閫夊弬鏁
nOriginThreadCount 鍘熷鍦板潃涓嬭浇绾跨▼鏁帮紝鑼冨洿1-10锛岄粯璁や负-1锛岃〃绀虹敱杩呴浄澶勭悊锛屽彲閫夊弬鏁
銆銆4. 寮濮嬩换鍔
銆銆HRESULT CommitTaskss()
銆銆鍔熻兘锛
銆銆鎶夾ddTask鎵鍔犲叆鐨勪笅杞戒换鍔′俊鎭湡姝f彁浜ゅ埌杩呴浄涓繘琛屼笅杞斤紝骞朵粠骞冲彴涓垹闄
銆銆娉ㄦ剰锛氬鏋淎ddTask娣诲姞鐨勪换鍔℃病鏈夎鎻愪氦娌℃湁琚彇娑堬紙璋冪敤CancelTasks锛夛紝鍒橝gent瀵硅薄鏋愭瀯鏃朵細闃诲锛屾墍浠ヨ皟鐢ㄨ呬笉搴旇娈嬬暀涓浜涙病鏈夎鎻愪氦鎴栬呭彇娑堢殑浠诲姟锛屼互閬垮厤鑴氭湰鎵ц鑰呭仠姝㈠搷搴斻
銆銆5. 鍙栨秷浠诲姟
銆銆HRESULT CancelTasks()
銆銆鍔熻兘锛
銆銆鍙栨秷骞冲彴涓墍鏈夌敱AddTask鎵鍔犲叆鐨勪笅杞戒换鍔′俊鎭
銆銆6. 鏌ヨ浠诲姟淇℃伅
銆銆BSTR GetTaskInfo(BSTR pURL,BSTR pInfoName);
銆銆鍙傛暟锛
鍙傛暟鍚 鍚箟
pURL 鎵瑕佹煡璇㈢殑涓嬭浇URL淇℃伅
pInfoName 鐘舵佸悕绉帮紝鏈夊涓嬪嚑绉
銆傗淓xists鈥濓細pURL鏄惁鍦ㄨ繀闆风殑浠诲姟鍒楄〃
銆傗淧ath鈥濓細瀛樺偍鐩綍
銆傗淔ileName鈥濓細鏂囦欢鍚嶇О
銆傗淔ileSize鈥濓細鏂囦欢澶у皬
銆傗淐ompletedSize鈥濓細宸蹭笅杞藉ぇ灏
銆傗淧ercent鈥濓細涓嬭浇杩涘害
銆傗淪tatus鈥濓細浠诲姟鐘舵
銆銆杩斿洖鍊硷細 杩斿洖鍊兼槸瀛楃涓蹭笌鍙傛暟pInfoName鏈夊搴斿叧绯
鍙傛暟 杩斿洖鍊
鈥淓xists鈥 鈥漷rue鈥濆瓨鍦紝鈥漟alse鈥濅笉瀛樺湪
鈥淧ath鈥 瀛樺偍鐩綍锛屾渶鍚庡甫鍙嶆枩绾縗锛屼緥锛欳:\TDDownload\
鈥淔ileName鈥 鏂囦欢鍚嶇О
鈥淔ileSize鈥 鏂囦欢澶у皬锛屼互瀛楄妭涓哄崟浣嶏紝0琛ㄧず澶у皬鏈煡
鈥淐ompletedSize鈥 宸蹭笅杞藉ぇ灏忥紝浠ュ瓧鑺備负鍗曚綅
鈥淧ercent鈥 涓嬭浇杩涘害锛屽甫1浣嶅皬鏁帮紝渚嬶細70.0
鈥淪tatus鈥 浠诲姟鐘舵侊紝鏈変互涓6绉嶇姸鎬
銆傗渞unning鈥濓細 杩愯鐘舵
銆傗渟topped鈥濓細 鍋滄鐘舵
銆傗渇ailed鈥濓細 澶辫触鐘舵
銆傗渟uccess鈥濓細 鎴愬姛鐘舵
銆傗渃reatingfile鈥濓細姝e湪鍒涘缓鏁版嵁鏂囦欢
銆傗渃onnecting鈥濓細 姝e湪杩炴帴
銆銆7. GetTaskInfoStruct(INT pTaskInfo)
銆銆鍔熻兘锛氭煡璇竴涓换鍔$殑鎵鏈変俊鎭
鍙傛暟鍚 鍚箟
pTaskInfo 鍏跺疄鏄疶HUNDER_TASKINFO绫诲瀷鐨勭粨鏋勬寚閽堬紝璋冪敤鍓嶆妸瀹冭浆鎹负INT绫诲瀷锛涜皟鐢ㄥ悗缁撴瀯涓皢濉厖骞冲彴淇℃伅锛屽畾涔夊涓嬶細
typedef struct _THUNDER_TASKINFO
{
CHAR szURL[1024]; // 浠诲姟URL锛岄鍏堝~鍏
BOOL bTaskExists; // 浠诲姟鏄惁瀛樺湪锛孴RUE涓哄瓨鍦
CHAR szPath[256]; // 涓嬭浇鐨勬湰鍦颁繚瀛樿矾寰
CHAR szFileName[256]; // 鏈湴鏂囦欢鍚
ULONGLONG nFileSize; // 鏂囦欢澶у皬
ULONGLONG nCompletedSize; // 宸插畬鎴愮殑澶у皬
CHAR szPercent[16]; // 瀹屾垚鐨勭櫨鍒嗘暟锛岀敤 鈥56.8鈥濈殑鏍煎紡
CHAR szStatus[16]; // 褰撳墠鐘舵侊紝瀹氫箟鍚孏etTaskInfo鍑芥暟
} THUNDER_TASKINFO;
璋冪敤鑰呭厛濉厖缁撴瀯涓殑szURL鎴愬憳锛屾潵鎸囧畾闇瑕佹煡璇㈢殑浠诲姟鐨刄RL锛岀劧鍚庣瓑鍑芥暟杩斿洖鍚庡氨鍙互浠庡叾浠栨垚鍛樹腑鍙栧緱璇ヤ换鍔$殑淇℃伅銆
鏈緥鎵鏈変唬鐮
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




发表于 2009-1-5 19:48
| 











