hur får man fram hur mycket en inet kontroll laddat ner i ett program. jag vill att i en label i programmet ska det stå hur mycket data som laddats ner med en inet kontroll.
Byte
5 svar · 232 visningar · startad av PsyDonia
Tror inte det går, faktiskt? Men om du kör direkt med wininet-API:et så kan du ju hålla räkningen själv:
Dim hOpen As Long
Dim hOpenUrl As Long
Dim bDoLoop As Boolean
Dim bRet As Boolean
Dim sReadBuffer As String * 2048
Dim lNumberOfBytesRead As Long, lTotalBytesRead As Long
Dim sBuffer As String
Dim iFree As Long
iFree = FreeFile
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
hOpenUrl = InternetOpenUrl(hOpen, <dinurl>, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
bDoLoop = True
While bDoLoop
sReadBuffer = vbNullString
bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
lTotalBytesRead = lTotalBytesRead + lNumberOfBytesRead
dinLabel.Caption = lTotalBytesRead & " bytes nerladdade totalt."
DoEvents
If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
Wend
If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
If hOpen <> 0 Then InternetCloseHandle (hOpen)
Open <dinfil> For Binary Access Write As #iFree: Put #iFree, , sBuffer: Close #iFree
ok tack för hjälpen får testa det...
det gick gjorde så här.
efter att den laddat ner data så körde jag så här.
Do Until Inet1.StillExecuting = False
DoEvents
Loop
Inet1.Execute strdownloadfile, "HEAD " & Chr(34) & strdownloadfile & Chr(34)
Do Until Inet1.StillExecuting = False
DoEvents
Loop
Label1.Caption = Inet1.GetHeader("Content-length")
Do Until Inet1.StillExecuting = False
DoEvents
Loop
OK , du menar så. Jag trodde du ville se antalet nedladdade bytes medan du laddade ner ..
Nä det va så som jag löste det som jag ville ha.