Je ne suis pas sûr comment obtenir le fonctionnement ci-dessus de code. C'est code que j'emploie pour accéder à des pages Web. Il est troisième ou quatrième génération et assez robuste. C'est un module complet de code.
'clsInternetConnection
'
La 'classe fournit functionalty pour lire des pages Web.
'
'Mis en application comme un module de classe pour l'usage avec tout projet de VB ou de VBA.
'
'© Kevin 2008-2010 M. Jones
Option explicite
Const privé INTERNET_OPEN_TYPE_PRECONFIG = 0
Const privé INTERNET_FLAG_RELOAD = &H80000000
Const privé INTERNET_FLAG_PRAGMA_NOCACHE = &H100
Const privé INTERNET_OPTION_RECEIVE_TIMEOUT en tant que longtemps = 6
Const privé UserAgent = « VB »
mConnectionHandle privé en tant que longtemps
mTimeoutSeconds privés en tant que longtemps
Privé déclarer la bibliothèque « wininet » d'InternetCloseHandle de fonction (le _
hInet de ByRef en tant que long _
) En tant que longtemps
Privé déclarer la bibliothèque « wininet » dit « InternetOpenA » d'InternetOpen de fonction (le _
ByVal sAgent comme corde, _
lAccessType de ByVal en tant que longtemps, _
sProxyName de ByVal comme corde, _
sProxyBypass de ByVal comme corde, _
lFlags de ByVal en tant que long _
) En tant que longtemps
Privé déclarer la bibliothèque « wininet » dit « InternetOpenUrlA » d'InternetOpenUrl de fonction (le _
hInternetSession de ByVal en tant que longtemps, _
lpszUrl de ByVal comme corde, _
lpszHeaders de ByVal comme corde, _
dwHeadersLength de ByVal en tant que longtemps, _
dwFlags de ByVal en tant que longtemps, _
dwContext de ByVal en tant que long _
) En tant que longtemps
Privé déclarer la bibliothèque « wininet » d'InternetReadFile de fonction (le _
ByVal hFile en tant que longtemps, _
sBuffer de ByVal comme corde, _
lNumBytesToRead de ByVal en tant que longtemps, _
lNumberOfBytesRead en tant que long _
) Comme nombre entier
Privé déclarer la bibliothèque « wininet.dll » dit « InternetSetOptionA » d'InternetSetOption de fonction (le _
hInternet de ByVal en tant que longtemps, _
dwOption de ByVal en tant que longtemps, _
lpBuffer de ByRef en tant que quels, _
dwBufferLength de ByVal en tant que long _
) En tant que longtemps
Class_Initialize secondaire privé ()
mConnectionHandle = InternetOpen (UserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
Si mConnectionHandle = 0 puis
MsgBox « incapable d'ouvrir une connexion internet. La cause le plus susceptible est trop de poignées ont été créées. »
Finir si
mTimeoutSeconds = 30
Sous-marin d'extrémité
Class_Terminate secondaire privé ()
mConnectionHandle d'InternetCloseHandle
Sous-marin d'extrémité
Fonction publique GetWebPage (_
URL de ByVal comme corde, _
ByVal facultatif ProxyUserID comme corde, _
ByVal facultatif ProxyPassword comme corde, _
ByVal facultatif TimeoutSeconds en tant que long _
) Comme corde
'Obtenir une page Web.
'
'Syntaxe
'
'GetWebPage (URL, [ProxyUserID], [ProxyPassword])
'
'URL - Un URL complet à une page Web.
'
'ProxyUserID - l'identification de l'utilisateur pour le proxy server, le cas échéant. Facultatif. Si omis
'alors aucun proxy server n'est assumé.
'
'ProxyPassword - le mot de passe pour le proxy server. Facultatif. Ignoré si
'ProxyUserID est omis.
'
'TimeoutSeconds - le nombre de secondes à attendre jusqu'à la synchronisation dehors. Facultatif.
'Si omis alors 30 secondes est employées.
Faible ConnectionHandle en tant que longtemps
Faible URLHandle en tant que longtemps
Faible BytesRead en tant que longtemps
Faible résultat comme booléen
Faible InputBuffer comme corde * 10000
Faible PageContent comme corde
Faible SecurityData comme corde
Si Len (ProxyUserID) > 0 puis
SecurityData = ProxyUserID
Si Len (ProxyPassword) > 0 puis
SecurityData = SecurityData et « : » Et ProxyPassword
Finir si
SecurityData = SecurityData et « @ »
L'URL = remplacent (URL, « : / », « : / » et SecurityData)
Finir si
Si TimeoutSeconds = 0 puis TimeoutSeconds = mTimeoutSeconds
Si mConnectionHandle <> 0 puis
Résultat = InternetSetOption (mConnectionHandle, INTERNET_OPTION_RECEIVE_TIMEOUT, TimeoutSeconds * 1000, Len (TimeoutSeconds))
URLHandle = InternetOpenUrl (mConnectionHandle, URL, vbNullString, 0, INTERNET_FLAG_RELOAD ou INTERNET_FLAG_PRAGMA_NOCACHE, 0)
Si URLHandle <> 0 puis
Faire
InputBuffer = vbNullString
Résultat = InternetReadFile (URLHandle, InputBuffer, Len (InputBuffer), BytesRead)
PageContent = PageContent et sont partis (InputBuffer, BytesRead)
Faire une boucle tandis que BytesRead > 0
InternetCloseHandle URLHandle
Finir si
Finir si
GetWebPage = PageContent
Fonction de fin
La propriété publique obtiennent ValidInternetConnection () comme booléenne
ValidInternetConnection = mConnectionHandle <> 0
Propriété d'extrémité
La propriété publique obtiennent TimeoutSeconds () en tant que longtemps
TimeoutSeconds = mTimeoutSeconds
Propriété d'extrémité
La propriété publique a laissé TimeoutSeconds (le _
Valeur de ByVal en tant que long _
)
mTimeoutSeconds = valeur
Propriété d'extrémité
Kevin