![]() |
|
|||||||
| 論壇說明 |
|
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
![]() |
|
|
主題工具 | 顯示模式 |
|
|
#1 |
|
註冊會員
|
有一Command鈕 click事件內有許多inet的下載作業.
請問 在執行完成作業之前 要如何防止被連擊2次 ?? 謝謝~ |
|
|
送花文章: 185,
|
|
|
#2 (permalink) |
|
管理版主
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
參考看看
語法:
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
hpvDest As Any, _
ByVal hpvSource As Long, _
ByVal cbCopy As Long)
Dim gbyteDLData() As Byte
Dim gDataContentLength As Long
==========以上建一個 共用模組.bas==========
Private Sub Inet1_StateChanged(ByVal State As Integer)
On Error GoTo EXITSUB
Select Case State
Case icResponseCompleted '此請求已經完成,並且所有資料均已接收到
Dim tmpB() As Byte
Dim r As Long
DoEvents
'**獲得開頭段資料 及 長度資訊
Dim S As String
If gDataContentLength = 0 Then
gbyteDLData = Inet1.GetChunk(5120, icByteArray)
End If
S = Inet1.GetHeader("Content-Length")
If Len(S) = 0 Then gDataContentLength = 0 Else gDataContentLength = CLng(S)
'**持續拼接資料,直到無資料為止
Do While True
tmpB = Inet1.GetChunk(5120, icByteArray)
If LenB(tmpB) = 0 Then Exit Do
r = UBound(gbyteDLData) + 1
ReDim Preserve gbyteDLData(0 To r + UBound(tmpB))
CopyMemory _
ByVal VarPtr(gbyteDLData(0)) + r, _
ByVal VarPtr(tmpB(0)), _
UBound(tmpB) + 1
Erase tmpB
DoEvents
Loop
End Select
EXITSUB:
If Err.Number = 35758 Then Inet1.Cancel
Err.Clear
Command1.Enabled = True
End Sub
Private Sub Command1_Click()
Command1.Enabled = False
Call StartDownLoad '開始下載副程式
End Sub
|
|
|
送花文章: 2057,
|
|
向 mini 送花的會員:
|
![]() |
|
|
相似的主題
|
||||
| 主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
| 如何防止被net send所送出的信息搔擾? | asd321 | 軟體應用問題討論區 | 2 | 2003-05-10 07:02 AM |
| 如何防止別人偷連我的電腦?? | jakie | 硬體疑難使用問題討論區 | 14 | 2003-03-08 12:05 AM |