Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How to get a jpg from a website
Message
From
26/08/2011 11:51:12
 
 
To
26/08/2011 11:45:54
General information
Forum:
Visual FoxPro
Category:
COM/DCOM and OLE Automation
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows 7
Network:
Windows 2008 Server
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01521872
Message ID:
01521911
Views:
50
No, I haven't. But it should be a file which is created within the last few seconds, and it should end with .gif. If you send me, privately, the URL to the web page in question, I will look into it later. I still think it should be possible to get the file via automation.

>Bright! Any idea where/how to find that?
>
>Somewhere here maybe: C:\Users\{username}\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5
>
>Any idea how to make sure i have the right file?
>
>
>>Then you may be forced to take a completely different approach. The captcha will also be cached on your HD, you can get it from there.
>>
>>>It does, but not a normal one: if you surf to that url you get a new captcha, a different one. And if you refresh, you get another one.
>>>
>>>>Doesn't the gaptcha have a URL? I'm pretty sure that it does.
>>>>
>>>>>Thank you for your quick reply, bu sorry, it is not as 'easy' as that.
>>>>>
>>>>>I want to download a captcha from google and present it in a vfp-form, but the captcha is not so easily isolated by automation. Interactively I can just right-click and can save the image, but I don't know how to do that automatically.
>>>>>Google-captcha's do not have normal URLs.
>>>>>
>>>>>>If you know the URL, you can use GetDataFromURL
>>>>>>Strtofile(GetDataFromURL('yourURL','yourfilename.jpg')
>>>>>>
>>>>>>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" Timeout 5
>>>>>>   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 )
>>>>>>
>>>>>>* return the URL contents
>>>>>>RETURN lcRetVal
>>>>>>
>>>>>>
>>>>>>>Hello everybody
>>>>>>>
>>>>>>>I automate IE9, by:
>>>>>>>
>>>>>>>
>>>>>>>goIE = CREATEOBJECT("InternetExplorer.Application")
>>>>>>>
>>>>>>>
>>>>>>>and by goIE.navigate() I navigate to a URL. There is a jpg-image there, which I want to get on my local disk. I do not have the slightest idea...
>>>>>>>Any help appreciated!
>>>>>>>
>>>>>>>TIA
>>>>>>>
>>>>>>>Lennert
Previous
Reply
Map
View

Click here to load this message in the networking platform