Eu não sou certo como começ o funcionamento acima do código. Este é código que eu me uso para alcançar Web pages. É terceira ou quarta geração e consideravelmente robusto. Este é um módulo completo do código.
'clsInternetConnection
'
'A classe fornece functionalty para ler Web pages.
'
'Executado como um módulo da classe para o uso com algum projeto de VB ou de VBA.
'
'© Kevin 2008-2010 M. Jones
Opção explícita
Const confidencial INTERNET_OPEN_TYPE_PRECONFIG = 0
Const confidencial INTERNET_FLAG_RELOAD = &H80000000
Const confidencial INTERNET_FLAG_PRAGMA_NOCACHE = &H100
Const confidencial INTERNET_OPTION_RECEIVE_TIMEOUT como por muito tempo = 6
Const confidencial UserAgent = “VB”
mConnectionHandle confidencial como por muito tempo
mTimeoutSeconds confidenciais como por muito tempo
Confidencial declarar o liberal “wininet” de InternetCloseHandle da função (o _
hInet de ByRef como longo o _
) Como por muito tempo
Confidencial declarar o liberal “wininet” aliás “InternetOpenA” de InternetOpen da função (o _
ByVal sAgent como a corda, _
lAccessType de ByVal como por muito tempo, _
sProxyName de ByVal como a corda, _
sProxyBypass de ByVal como a corda, _
lFlags de ByVal como longo o _
) Como por muito tempo
Confidencial declarar o liberal “wininet” aliás “InternetOpenUrlA” de InternetOpenUrl da função (o _
hInternetSession de ByVal como por muito tempo, _
lpszUrl de ByVal como a corda, _
lpszHeaders de ByVal como a corda, _
dwHeadersLength de ByVal como por muito tempo, _
dwFlags de ByVal como por muito tempo, _
dwContext de ByVal como longo o _
) Como por muito tempo
Confidencial declarar o liberal “wininet” de InternetReadFile da função (o _
ByVal hFile como por muito tempo, _
sBuffer de ByVal como a corda, _
lNumBytesToRead de ByVal como por muito tempo, _
lNumberOfBytesRead como longo o _
) Como o inteiro
Confidencial declarar o liberal “wininet.dll” aliás “InternetSetOptionA” de InternetSetOption da função (o _
hInternet de ByVal como por muito tempo, _
dwOption de ByVal como por muito tempo, _
lpBuffer de ByRef como alguns, _
dwBufferLength de ByVal como longo o _
) Como por muito tempo
Class_Initialize secundário confidencial ()
mConnectionHandle = InternetOpen (UserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
Se mConnectionHandle = 0 então
MsgBox “incapaz de abrir uma conexão a internet. A causa mais provável é punhos demais foi criada.”
Terminar se
mTimeoutSeconds = 30
Submarino da extremidade
Class_Terminate secundário confidencial ()
mConnectionHandle de InternetCloseHandle
Submarino da extremidade
Função pública GetWebPage (_
URL de ByVal como a corda, _
ByVal opcional ProxyUserID como a corda, _
ByVal opcional ProxyPassword como a corda, _
ByVal opcional TimeoutSeconds como longo o _
) Como a corda
'Começ um Web page.
'
'Sintaxe
'
'GetWebPage (URL, [ProxyUserID], [ProxyPassword])
'
'URL - Um URL completo a um Web page.
'
'ProxyUserID - usuário - identificação para o proxy server, eventualmente. Opcional. Se omitido
'nenhum proxy server é supor então.
'
'ProxyPassword - a senha para o proxy server. Opcional. Ignorado se
'ProxyUserID é omitido.
'
'TimeoutSeconds - o número de segundos a esperar até cronometrar para fora. Opcional.
'Se omitido então 30 segundos são usados.
ConnectionHandle não ofuscante como por muito tempo
URLHandle não ofuscante como por muito tempo
BytesRead não ofuscante como por muito tempo
Resultado não ofuscante como bôoleano
InputBuffer não ofuscante como a corda * 10000
PageContent não ofuscante como a corda
SecurityData não ofuscante como a corda
Se Len (ProxyUserID) > 0 então
SecurityData = ProxyUserID
Se Len (ProxyPassword) > 0 então
SecurityData = SecurityData & “: ” & ProxyPassword
Terminar se
SecurityData = SecurityData & “@”
O URL = substitui (URL, “: /”, “: /” & SecurityData)
Terminar se
Se TimeoutSeconds = 0 então TimeoutSeconds = mTimeoutSeconds
Se mConnectionHandle <> 0 então
Resultado = 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)
Se URLHandle <> 0 então
Fazer
InputBuffer = vbNullString
Resultado = InternetReadFile (URLHandle, InputBuffer, Len (InputBuffer), BytesRead)
PageContent = PageContent & sairam (InputBuffer, BytesRead)
Dar laços quando BytesRead > 0
InternetCloseHandle URLHandle
Terminar se
Terminar se
GetWebPage = PageContent
Função do fim
A propriedade pública começ ValidInternetConnection () como bôoleana
ValidInternetConnection = mConnectionHandle <> 0
Propriedade da extremidade
A propriedade pública começ TimeoutSeconds () como por muito tempo
TimeoutSeconds = mTimeoutSeconds
Propriedade da extremidade
A propriedade pública deixou TimeoutSeconds (o _
Valor de ByVal como longo o _
)
mTimeoutSeconds = valor
Propriedade da extremidade
Kevin