webForumDet fria alternativet

Runtime Error 50003

2 svar · 173 visningar · startad av Mungo

MungoMedlem sedan jan. 2000376 inlägg
#1

Hej,
har just gjort en liten snurra som ligger och hämtar en bild över nätet var tionde minut via en Internet transfer control. Den färdiga applikationen funkar finfint på båda mina datorer som kör Windows XP Pro, men inte så bra på en annan som kör Windows ME.

Närmare bestämt så får man "Runtime Error 50003" lite då och då under programkörningen, men jag hittar ingenstans vad detta kan bero på - är det nån som känner till vad det kan vara och vad jag kan göra för att åtgärda?

Kan tillägga att det är VB6 det handlar om...

Tacksam för all hjälp är:

Måns

nikoMedlem sedan juni 20022 415 inlägg
#2

Har själv mycket dåliga erfarenheter av Inetkontrollen på Win9x.
Ett alternativ som funkat för mig är att strunta i kontrollen och direkt anropa funktionerna i wininet.dll.

Kod för att ladda ner fil till disk:

    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
    Dim sBuffer             As String
    Dim iFree As Long
    iFree = FreeFile
    hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
    hOpenUrl = InternetOpenUrl(hOpen, "http://" & <URL till bild>, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
    bDoLoop = True
    While bDoLoop
        sReadBuffer = vbNullString
        bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
        sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
        If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
    Wend
    If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
    If hOpen <> 0 Then InternetCloseHandle (hOpen)
    Open <ditt filnamn> For Binary Access Write As #iFree: Put #iFree, , sBuffer: Close #iFree

Tillhörande deklarationer (lägg i basfil):

Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Public Const INTERNET_OPEN_TYPE_DIRECT = 1
Public Const INTERNET_OPEN_TYPE_PROXY = 3

Public Const scUserAgent = "VB OpenUrl"
Public Const INTERNET_FLAG_RELOAD = &H80000000

Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _
(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _
ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" _
(ByVal hOpen As Long, ByVal sUrl As String, ByVal sHeaders As String, _
ByVal lLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long

Public Declare Function InternetReadFile Lib "wininet.dll" _
(ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, _
lNumberOfBytesRead As Long) As Integer

Public Declare Function InternetCloseHandle Lib "wininet.dll" _
(ByVal hInet As Long) As Integer
MungoMedlem sedan jan. 2000376 inlägg
#3

Kanon, tack - ska prova det och återkomma med resultat!

127 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
125 ms — hämta tråd, inlägg och bilagor (db)