;
帖子
3919 
精华
积分
11710 
鱼币
0 ¥ 
来自
大连 
在线时间
1858 小时 
注册时间
2007-6-11 
最后登录
2009-10-20 

贴图大师勋章新人进步勋章宣传大使勋章论坛元老勋章

3
发表于 2009-1-5 19:48 | 只看该作者
VB.NET缂栫▼璋冪敤璁浄涓嬭浇鏂囦欢 - 缂栫▼搴 - Powered by SupeSite

浣犵殑浣嶇疆锛缂栫▼搴 >> 璧勮 >> VC.NET >> VC.NET鎶宸 >> 璇︾粏鍐呭 鍦ㄧ嚎鎶曠ǹ

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

鎵撳嵃 | 鏀惰棌姝ら〉 |  鎺ㄨ崘缁欏ソ鍙 | 涓炬姤
涓婁竴绡 涓嬩竴绡
 

璇勫垎锛0

鍙戣〃璇勮
鏌ョ湅鍏ㄩ儴鍥炲銆愬凡鏈0浣嶇綉鍙嬪彂琛ㄤ簡鐪嬫硶銆