The following code snippet uses API functions to check Internet connectivity and also the type of connection
:
Public Declare Function InternetGetConnectedState _
Lib "wininet.dll" (lpdwFlags As Long, _
ByVal dwReserved As Long) As Boolean
Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" Alias "InternetGetConnectedStateExA" ( _
ByRef lpdwFlags As Long, _
ByVal lpszConnectionName As String, _
ByVal dwNameLen As Long, _
ByVal dwReserved As Long) As Long
'Local system uses a modem to connect to the Internet.
Private Const INTERNET_CONNECTION_MODEM As Long = &H1
'Local system uses a LAN to connect to the Internet.
Private Const INTERNET_CONNECTION_LAN As Long = &H2
'Local system uses a proxy server to connect to the Internet.
Private Const INTERNET_CONNECTION_PROXY As Long = &H4
The following API functions are used
Function IsConnected() As Boolean
Dim Stat As Long
IsConnected = (InternetGetConnectedState(Stat, 0&) <> 0)
If IsConnected And INTERNET_CONNECTION_LAN Then
MsgBox "Lan Connection"
ElseIf IsConnected And INTERNET_CONNECTION_MODEM Then
MsgBox "Modem Connection"
ElseIf IsConnected And INTERNET_CONNECTION_PROXY Then
MsgBox "Proxy"
End If
End Function
If you want to know just if it is connected or not you can use the following:
CBool(InternetGetConnectedStateEx(0, vbNullString, 512, 0&))