Niko eller nån annan.
vet nån hur man gör men wininet.dll
som med inet att den är i still executing.
5 svar · 136 visningar · startad av PsyDonia
Niko eller nån annan.
vet nån hur man gör men wininet.dll
som med inet att den är i still executing.
Lite osäker på vad du menar .. För att det ska vara intressant att kolla om den är "still executing" så måste du ha anropat den asynkront. Om det är det du vill så blir det rätt krångligt och det är svårt att hitta bra VB-exempel:
C-kod
Mer C-kod
Allmänt VB-prat
Två tips:
1. Låt bli att anropa den asynkront om du inte måste. (
2. Använd Inet-kontrollen om du måste köra asynkront. Den har ju StateChanged och sånt inbyggt.
Men, som sagt, i vilket fall behöver du egentligen veta om ett anrop är "still executing"?
för den ska först öppna en fil från internet när den är nerladdad så ska den ladda ner en till.
har just nu det så här men vill hälst inte använda nån kontroll alls.
Dim strdata
strdata = ""
strdata = Inet1.OpenURL("http://192.168.0.3/news.asp ")
Do Until Inet1.StillExecuting = False
DoEvents
news.caption=strdata
strdata = Inet1.OpenURL("http://192.168.0.3/latest.asp ")
Do Until Inet1.StillExecuting = False
DoEvents
latest.caption=strdata
Loop
OK, då är jag med. Nedladdningar med API:et sker som default synkront så du behöver aldrig kolla "StillExecuting". Det är bara att ladda ner i tur och ordning:
Dim hInternetSession As Long
Dim hUrlFile As Long
Dim sReadBuffer As String * 4096
Dim sBuffer As String
Dim lNumberOfBytesRead As Long
Dim bDoLoop As Boolean
hInternetSession = InternetOpen("My VB App!", _
INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
'Ladda ner fil 1.
hUrlFile = InternetOpenUrl(hInternetSession, _
"http://192.168.0.3/news.asp", vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
bDoLoop = True
While bDoLoop
sReadBuffer = ""
bDoLoop = InternetReadFile(hUrlFile, sReadBuffer, _
Len(sReadBuffer), lNumberOfBytesRead)
sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
If Not Cbool(lNumberOfBytesRead) Then bDoLoop = False
Wend
InternetCloseHandle(hUrlFile)
news.caption=sBuffer
sBuffer = "" 'Nolla bufferten.
'Ladda ner fil 2.
hUrlFile = InternetOpenUrl(hInternetSession, _
"http://192.168.0.3/latest.asp", vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
bDoLoop = True
While bDoLoop
sReadBuffer = ""
bDoLoop = InternetReadFile(hUrlFile, sReadBuffer, _
Len(sReadBuffer), lNumberOfBytesRead)
sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
If Not Cbool(lNumberOfBytesRead) Then bDoLoop = False
Wend
InternetCloseHandle(hUrlFile)
latest.caption=sBuffer
InternetCloseHandle(hInternetSession)
Bifogar en bas-fil med deklarationer till wininet.dll ifall du inte har det.
bra tack för hjälpen ska prova det nu...
har provat så du skrev typ....
och det funkar bra.
tack så mycket..