No estoy seguro cómo conseguir el funcionamiento antedicho del código. Éste es código que utilizo para tener acceso a Web pages. Es tercer o de cuarta generación y bastante robusto. Esto es un módulo completo del código.
'clsInternetConnection
'
La 'clase proporciona functionalty para leer Web pages.
'
'Ejecutado como un módulo de la clase para el uso con cualquie proyecto de VB o de VBA.
'
'© Kevin 2008-2010 M. Jones
Opción explícita
Const privado INTERNET_OPEN_TYPE_PRECONFIG = 0
Const privado INTERNET_FLAG_RELOAD = &H80000000
Const privado INTERNET_FLAG_PRAGMA_NOCACHE = &H100
Const privado INTERNET_OPTION_RECEIVE_TIMEOUT como de largo = 6
Const privado UserAgent = “VB”
mConnectionHandle privado como de largo
mTimeoutSeconds privados como de largo
Privado declarar la liberación “wininet” de InternetCloseHandle de la función (el _
hInet de ByRef como largo _
) Como de largo
Privado declarar la liberación “wininet” alias “InternetOpenA” de InternetOpen de la función (el _
ByVal sAgent como secuencia, _
lAccessType de ByVal como de largo, _
sProxyName de ByVal como secuencia, _
sProxyBypass de ByVal como secuencia, _
lFlags de ByVal como largo _
) Como de largo
Privado declarar la liberación “wininet” alias “InternetOpenUrlA” de InternetOpenUrl de la función (el _
hInternetSession de ByVal como de largo, _
lpszUrl de ByVal como secuencia, _
lpszHeaders de ByVal como secuencia, _
dwHeadersLength de ByVal como de largo, _
dwFlags de ByVal como de largo, _
dwContext de ByVal como largo _
) Como de largo
Privado declarar la liberación “wininet” de InternetReadFile de la función (el _
ByVal hFile como de largo, _
sBuffer de ByVal como secuencia, _
lNumBytesToRead de ByVal como de largo, _
lNumberOfBytesRead como largo _
) Como número entero
Privado declarar la liberación “wininet.dll” alias “InternetSetOptionA” de InternetSetOption de la función (el _
hInternet de ByVal como de largo, _
dwOption de ByVal como de largo, _
lpBuffer de ByRef como cualesquiera, _
dwBufferLength de ByVal como largo _
) Como de largo
Class_Initialize secundario privado ()
mConnectionHandle = InternetOpen (UserAgent, INTERNET_OPEN_TYPE_PRECONFIG, el vbNullString, el vbNullString, 0)
Si mConnectionHandle = 0 entonces
MsgBox “incapaz de abrir una conexión a internet. Se ha creado la causa más probable es demasiadas manijas.”
Terminar si
mTimeoutSeconds = 30
Submarino del extremo
Class_Terminate secundario privado ()
mConnectionHandle de InternetCloseHandle
Submarino del extremo
Función pública GetWebPage (_
URL de ByVal como secuencia, _
ByVal opcional ProxyUserID como secuencia, _
ByVal opcional ProxyPassword como secuencia, _
ByVal opcional TimeoutSeconds como largo _
) Como secuencia
'Conseguir un Web page.
'
'Sintaxis
'
'GetWebPage (URL, [ProxyUserID], [ProxyPassword])
'
'URL - Un URL completo a un Web page.
'
'ProxyUserID - la identificación del usuario para el proxy server, eventualmente. Opcional. Si está omitido
'entonces no se asume ninguÌn proxy server.
'
'ProxyPassword - la contraseña para el proxy server. Opcional. No hecho caso si
Se omite 'ProxyUserID.
'
'TimeoutSeconds - el número de segundos a esperar hasta medir el tiempo hacia fuera. Opcional.
'Si entonces están omitidos se utilizan 30 segundos.
ConnectionHandle dévil como de largo
URLHandle dévil como de largo
BytesRead dévil como de largo
Resultado dévil como boleano
InputBuffer dévil como secuencia * 10000
PageContent dévil como secuencia
SecurityData dévil como secuencia
Si Len (ProxyUserID) > 0 entonces
SecurityData = ProxyUserID
Si Len (ProxyPassword) > 0 entonces
SecurityData = SecurityData y “: ” Y ProxyPassword
Terminar si
SecurityData = SecurityData y “@”
El URL = substituye (URL, “: /”, “: /” y SecurityData)
Terminar si
Si TimeoutSeconds = 0 entonces TimeoutSeconds = mTimeoutSeconds
Si mConnectionHandle <> 0 entonces
Resultado = InternetSetOption (mConnectionHandle, INTERNET_OPTION_RECEIVE_TIMEOUT, TimeoutSeconds * 1000, Len (TimeoutSeconds))
URLHandle = InternetOpenUrl (mConnectionHandle, URL, el vbNullString, 0, INTERNET_FLAG_RELOAD o INTERNET_FLAG_PRAGMA_NOCACHE, 0)
Si URLHandle <> 0 entonces
Hacer
InputBuffer = vbNullString
Resultado = InternetReadFile (URLHandle, InputBuffer, Len (InputBuffer), BytesRead)
PageContent = PageContent y se fueron (InputBuffer, BytesRead)
Colocar mientras que BytesRead > 0
InternetCloseHandle URLHandle
Terminar si
Terminar si
GetWebPage = PageContent
Función del final
La característica pública consigue ValidInternetConnection () como boleana
ValidInternetConnection = mConnectionHandle <> 0
Característica del extremo
La característica pública consigue TimeoutSeconds () como de largo
TimeoutSeconds = mTimeoutSeconds
Característica del extremo
La característica pública dejó TimeoutSeconds (el _
Valor de ByVal como largo _
)
mTimeoutSeconds = valor
Característica del extremo
Kevin