View Full Version : [VB] mettere un'immagine da internet
se voglio mettere un img da internet nel mio programma
es.
http://www.filmup.com/locand/allaricercadinemo.jpg
come devo fare?
Io ho provato a fare così:
MiaImmagine.Picture = LoadPicture("http://www.filmup.com/locand/allaricercadinemo.jpg")
Ma non va ... perchè?
Grazie, ciao
Devi scarica prima l'immagine in locale e poi visualizzarla...
Const scUserAgent = "API-Guide test program"
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
Const sURL = "http://www.microsoft.com/index.htm"
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByRef hInet As Long) As Long
Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Sub Form_Load()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long
'Create a buffer for the file we're going to download
sBuffer = Space(1000)
'Create an internet connection
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
'Open the url
hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
'Read the first 1000 bytes of the file
InternetReadFile hFile, sBuffer, 1000, Ret
'clean up
InternetCloseHandle hFile
InternetCloseHandle hOpen
'Show our file
MsgBox sBuffer
End Sub
Non ti va perchè in quel parametro il LoadPicture richiede una Path fisica di un file...nn un URL :)
Per risolvere il tuo problema dovresti scaricare il file da internet e poi con il LoadPicture caricarlo nel tuo prg!
Se ti interessa fare così ti do una mano su questo lato ;)
maxithron
11-01-2004, 13:25
Ci sarà una ragione per cui non puoi scaricarti l'immagine con un semplice "salva con nome" e poi metterla in una dir locale, vero? :wtf:
come ha detto cionci è corretto, quello è la aprte di codice per scaricare un file! :D
Cazspita qui la cosa diventa sempre più complicata!
e tra l'altro mi dice che
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
non vale dentro una routine, ma dove devo incollare quel codice?
Grazie, ciao
Ok ora ho capito qualcosa,
Dopo aver scaricato il file che mi serve, qual è il suo riferimento?
sBuffer?
devo fare Miaimm.picture = loadpicture (sBuffer) ?
E se l'img è più grande di 1kb?
Sembra che mi funzioni, però solo con i file HTM più piccoli di 1Kb..
Però a me serve una immg completa.
Grazie per la pazienza
Prova così :D
Const scUserAgent = "API-Guide test program"
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
Const sURL = "http://www.ublteam.com/Slayer/Comuni.rar"
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByRef hInet As Long) As Long
Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Const TotDW = 1024
Private Sub Command1_Click()
Dim nFreeFile As Integer
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim sFileData As String
Dim lSize As Long
Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long
'Create a buffer for the file we're going to download
sBuffer = Space(TotDW)
'Create an internet connection
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
'Open the url
hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
'Read the first 1024 bytes of the file
sFileData = ""
Do
InternetReadFile hFile, sBuffer, TotDW, Ret
'If Ret <> TotDW Then
sFileData = sFileData & Left$(sBuffer, Ret)
lSize = lSize + Ret
ProgressBar1.Value = lSize
'Else
'sFileData = sFileData & sBuffer
'End If
DoEvents
Loop Until Ret = 0
'clean up
InternetCloseHandle hFile
InternetCloseHandle hOpen
'scrittura del file
nFreeFile = FreeFile
Open "ciao.rar" For Output As #nFreeFile
Print #nFreeFile, sFileData
Close #nFreeFile
End Sub
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.