Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Invoking URLDownloadToFile In urlmon.Dll
Message
From
15/10/2008 21:25:38
 
General information
Forum:
Visual FoxPro
Category:
Other
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Vista
Miscellaneous
Thread ID:
01309811
Message ID:
01355286
Views:
20
>>>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.

You're welcome. The code is not mine, though.
Previous
Reply
Map
View

Click here to load this message in the networking platform