每次做一个任务,当任务尚未完成时, inet.stillexecuting 为true 在你的下载任务内再做一个循环do until 任务未完成 downloadfile do until inet1.stillexecuting = false doevents looploop这样就会确保完成一个下载后进行下一个下载。
Garfield(猫仔|别忘了结帖,同志):我做了一个你说的程序,但是总是在 do until inet1.stillexecuting = false doevents loop 过不去,我也不知道为什么 希望你能解答 谢谢!!!!!!!
Dim t As Integer: t = 0 Temparray为下载文件名数组 Do Until t > UBound(Temparray) If Len(Temparray(t)) Then Inetftp.Execute , "GET " & "\b\" & Temparray(t) & " " & "E:\Download\mdb\" & Temparray(t) t = t + 1 End If Do Until Inetftp.StillExecuting = False DoEvents Loop Loop
使用inet的statechange事件icResponseCompleted 12 该请求已经完成,并且所有数据均已接收到。 定义模块级变量 Dim bDownloadFinished as BooleanDim t As Integer: t = 0 Temparray为下载文件名数组 Do Until t > UBound(Temparray) bDownloadFinished = false ' 重置下载是否完成的flag If Len(Temparray(t)) Then Inetftp.Execute , "GET " & "\b\" & Temparray(t) & " " & "E:\Download\mdb\" & Temparray(t) t = t + 1 End If Do Until bDownloadFinished = true ' 检查flag DoEvents Loop Loop在inet_stateChange事件里面设置flagif state = 12 then bDownloadFinished = true
Garfield(猫仔|别忘了结帖,同志) : 谢谢你,我已经按你说的试了,但是因为在 Do Until bDownloadFinished = true ' 检查flag DoEvents Loop 还没有运行StateChanged事件,所以是一个死循环 请问还有没有别的办法
在你的下载任务内再做一个循环do until 任务未完成
downloadfile do until inet1.stillexecuting = false
doevents
looploop这样就会确保完成一个下载后进行下一个下载。
do until inet1.stillexecuting = false
doevents
loop
过不去,我也不知道为什么
希望你能解答 谢谢!!!!!!!
有OpenURL,有Execute,你用的是哪一种?
最好把下载那部分代码都帖出来看看
Temparray为下载文件名数组
Do Until t > UBound(Temparray)
If Len(Temparray(t)) Then
Inetftp.Execute , "GET " & "\b\" & Temparray(t) & " " & "E:\Download\mdb\" & Temparray(t)
t = t + 1
End If
Do Until Inetftp.StillExecuting = False
DoEvents
Loop
Loop
定义模块级变量 Dim bDownloadFinished as BooleanDim t As Integer: t = 0
Temparray为下载文件名数组
Do Until t > UBound(Temparray)
bDownloadFinished = false ' 重置下载是否完成的flag
If Len(Temparray(t)) Then
Inetftp.Execute , "GET " & "\b\" & Temparray(t) & " " & "E:\Download\mdb\" & Temparray(t)
t = t + 1
End If
Do Until bDownloadFinished = true ' 检查flag
DoEvents
Loop
Loop在inet_stateChange事件里面设置flagif state = 12 then bDownloadFinished = true
谢谢你,我已经按你说的试了,但是因为在
Do Until bDownloadFinished = true ' 检查flag
DoEvents
Loop
还没有运行StateChanged事件,所以是一个死循环
请问还有没有别的办法
就算在循环当中StateChange事件也一样会被正确的引发我winsock,inet都是这样用
如果你这样用不行我也就“回天乏术”了。