Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Invoking URLDownloadToFile In urlmon.Dll
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Vista
Divers
Thread ID:
01309811
Message ID:
01355265
Vues:
22
>>>>Hi there, I'm trying to use the URLDownloadToFile function to get the exact time from the web but i noticed that i can read the url i want just for the first time then, what i get is always the same page unless i quit vfp and launch it again.
>>>>Is there a way to avoid that ?
>>>>
>>>>Thank you
>>>>Alessio
>>>
>>>Try this instead
>>>LcString=getdatafromurl(yourURL)
>>>
>>>Function getdatafromurl
>>>   Lparameters pcUrlName
>>>   Declare Integer InternetOpen In wininet.Dll String sAgent, ;
>>>      INTEGER lAccessType, String sProxyName, ;
>>>      STRING sProxyBypass, Integer lFlags
>>>
>>>   Declare Integer InternetOpenUrl In wininet.Dll ;
>>>      INTEGER hInternetSession, String sUrl, String sHeaders,;
>>>      INTEGER lHeadersLength, Integer lFlags, Integer lContext
>>>
>>>   Declare Integer InternetReadFile In wininet.Dll Integer hfile, ;
>>>      STRING @sBuffer, Integer lNumberofBytesToRead, Integer @lBytesRead
>>>
>>>   Declare short InternetCloseHandle In wininet.Dll Integer hInst
>>>
>>>   #Define INTERNET_OPEN_TYPE_PRECONFIG 0
>>>   #Define INTERNET_OPEN_TYPE_DIRECT 1
>>>   #Define INTERNET_OPEN_TYPE_PROXY 3
>>>   #Define SYNCHRONOUS 0
>>>   #Define INTERNET_FLAG_RELOAD 2147483648
>>>   #Define CR Chr(13)
>>>
>>>   Local lsAgent, lhInternetSession, lhUrlFile, llOk, lnOk, lcRetVal, lcReadBuffer, lnBytesRead
>>>
>>>* what application is using Internet services?
>>>   lsAgent = "VPF 5.0"
>>>
>>>   lhInternetSession = InternetOpen( lsAgent, INTERNET_OPEN_TYPE_PRECONFIG, ;
>>>      '', '', SYNCHRONOUS)
>>>
>>>* debugging line - uncomment to see session handle
>>>* WAIT WINDOW "Internet session handle: " + LTRIM(STR(hInternetSession))
>>>
>>>   If lhInternetSession = 0
>>>      Wait Window "Internet session cannot be established" Time 2
>>>      Return .Null.
>>>   Endif
>>>
>>>   lhUrlFile = InternetOpenUrl( lhInternetSession, pcUrlName, '', 0, ;
>>>      INTERNET_FLAG_RELOAD, 0)
>>>
>>>* debugging line - uncomment to see URL handle
>>>* WAIT WINDOW "URL Handle: " + LTRIM(STR(hUrlFile))
>>>
>>>   If lhUrlFile = 0
>>>      Wait Window "URL cannot be opened"
>>>      Return .Null.
>>>   Endif
>>>
>>>   lcRetVal = ""
>>>   llOk = .T.
>>>
>>>   Do While llOk
>>>* set aside a big buffer
>>>      lsReadBuffer = Space(32767)
>>>      lnBytesRead = 0
>>>      lnOk = InternetReadFile( lhUrlFile, @lsReadBuffer, Len(lsReadBuffer), @lnBytesRead)
>>>
>>>      If ( lnBytesRead > 0 )
>>>         lcRetVal = lcRetVal + Left( lsReadBuffer, lnBytesRead )
>>>      Endif
>>>
>>>* error trap - either a read failure or read past eof()
>>>      llOk = ( lnOk = 1 ) And ( lnBytesRead > 0 )
>>>   Enddo
>>>
>>>* close all the handles we opened
>>>   InternetCloseHandle( lhUrlFile )
>>>   InternetCloseHandle( lhInternetSession )
>>>   Clear Dlls InternetOpen,InternetCloseHandle,InternetOpenUrl ,InternetReadFile
>>>* return the URL contents
>>>Return lcRetVal
>>
>>
>>THANKS ALL. WORKS JUST FANTASTIC. AND HOW QUICKLY. Thanks.
>
>How quickly is what? :-)
>Tore is answered your question before you even ask it :-)
>-> 10/04/2008 23:14:12


Your answer(s) to my question of course. ;)
Meanwhile I wrote the full function to extract what I wanted. Thx.
email recepto, ergo sum.
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform