À medida em que mais e mais aplicações se tornam distribuídas na Interntet, você pode, sem dúvida, precisar de um meio de saber se o usuário está conectado presentemente à Web ou não. Felizmente, a API do Windows oferece um modo rápido e fácil de fazer isto com a função InternetGetConnectedState().
Esta função usa a sintaxe de declaração abaixo:
Private Declare Function InternetGetConnectedState Lib "wininet" (ByRef dwflags As Long, ByVal dwReserved As Long) As Long
A função retorna 1 se uma conexão existir e zero em caso contrário. Você pode facilmente converter estes valores no seus equivalentes booleanos no VB. Após o teste, o parâmetro dwflags irá indicar que tipo de conexão o usuário tem. Você pode usar comparações de bits para testar por valores específicos. As constantes para dwflags são as seguintes:
Private Const CONNECT_LAN As Long = &H2
Private Const CONNECT_MODEM As Long = &H1
Private Const CONNECT_PROXY As Long = &H4
Private Const CONNECT_RAS As Long = &H10
Private Const CONNECT_OFFLINE As Long = &H20
Private Const CONNECT_CONFIGURED As Long = &H40
Você pode ignorar o parâmetro dwReserved.
Para ver como esta função trabalha, crie um projeto no VB e adicione um botão
de comando ao formulário padrão. Insira as declarações das constantes e da
função InternetGetConnectedState como mostrado acima. Em seguida insira o
código abaixo:
Public Function IsWebConnected(Optional ByRef ConnType As String) As Boolean
Dim dwflags As Long
Dim WebTest As Boolean
ConnType = ""
WebTest = InternetGetConnectedState(dwflags, 0&)
Select Case WebTest
Case dwflags And CONNECT_LAN: ConnType = "LAN"
Case dwflags And CONNECT_MODEM: ConnType = "Modem"
Case dwflags And CONNECT_PROXY: ConnType = "Proxy"
Case dwflags And CONNECT_OFFLINE: ConnType = "Offline"
Case dwflags And CONNECT_CONFIGURED: ConnType = "Configurada"
Case dwflags And CONNECT_RAS: ConnType = "Remota"
End Select
IsWebConnected = WebTest
End Function
Private Sub Command1_Click()
Dim msg As String
If IsWebConnected(msg) Then
msg = "Você está conectado à Internet via: " & msg
Else
msg = "Você não está conectado à Internet."
End If
MsgBox msg, vbOKOnly, "Estado de conexão à Internet"
End Sub
Quando você rodar o programa e clicar no botão de comando, a mensagem lhe dirá se você está conectado á Internet e por que tipo de conexão.