webForumDet fria alternativet

Still Executing

5 svar · 136 visningar · startad av PsyDonia

PsyDoniaMedlem sedan maj 2003924 inlägg
#1

Niko eller nån annan.

vet nån hur man gör men wininet.dll
som med inet att den är i still executing.

nikoMedlem sedan juni 20022 599 inlägg
#2

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"?

PsyDoniaMedlem sedan maj 2003924 inlägg
#3

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

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.

PsyDoniaMedlem sedan maj 2003924 inlägg
#5

bra tack för hjälpen ska prova det nu...

PsyDoniaMedlem sedan maj 2003924 inlägg
#6

har provat så du skrev typ....
och det funkar bra.
tack så mycket..

250 ms totalt · 3 externa anrop · v20260731065814-full.30151723
126 ms — hämta forumlista (db)
122 ms — hämta statistik (db)
124 ms — hämta tråd, inlägg och bilagor (db)