webForumDet fria alternativet

Byte

5 svar · 232 visningar · startad av PsyDonia

PsyDoniaMedlem sedan maj 2003924 inlägg
#1

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.

nikoMedlem sedan juni 20022 599 inlägg
#2

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
PsyDoniaMedlem sedan maj 2003924 inlägg
#3

ok tack för hjälpen får testa det...

PsyDoniaMedlem sedan maj 2003924 inlägg
#4

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
nikoMedlem sedan juni 20022 599 inlägg
#5

OK , du menar så. Jag trodde du ville se antalet nedladdade bytes medan du laddade ner ..

PsyDoniaMedlem sedan maj 2003924 inlägg
#6

Nä det va så som jag löste det som jag ville ha.

134 ms totalt · 3 externa anrop · v20260731065814-full.91fd2ad2
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)