[DllImport("wininet.dll", SetLastError=true)]
extern static bool InternetGetConnectedState(
out InternetGetConnectedStateFlags Description, int ReservedValue);
Private Declare Function InternetGetConnectedState Lib "wininet.dll" _
(ByRef lpdwFlags As Int32, ByVal dwReserved As Int32) As Boolean
InternetGetConnectedStateFlags
Private Enum ConnectionStates
Modem = &H1
LAN = &H2
Proxy = &H4
RasInstalled = &H10
Offline = &H20
Configured = &H40
End Enum
Please add some!
C: http://support.microsoft.com/default.aspx?scid=kb;EN-US;242558
C#: http://www.aspemporium.com/aspEmporium/cshrp/howtos/howto.asp?hid=27
Public Function InternetGetConnectedState(ByRef plngFlags As Long, Optional ByRef p_return_str As String = "") As Boolean
Dim lngFlags As Long
lngFlags = 0
_InternetGetConnectedState = False
If InternetGetConnectedState(lngFlags, 0) Then
'connected.
If lngFlags And ConnectionStates.LAN Then
'LAN connection.
p_return_str = "LAN connection."
ElseIf lngFlags And ConnectionStates.Modem Then
'Modem connection.
p_return_str = "Modem connection."
ElseIf lngFlags And ConnectionStates.Proxy Then
'Proxy connection.
p_return_str = "Proxy connection."
End If
_InternetGetConnectedState = True
Else
'not connected.
p_return_str = "Not connected."
_InternetGetConnectedState = False
End If
p_lngFlags = lngFlags
End Function
Try NetworkInterface.GetIsNetworkAvailable() in the the System.Net.NetworkInformation namespace. It returns true when a network is available and false otherwise. See also: http://msdn2.microsoft.com/en-us/library/system.net.networkinformation.networkinterface.getisnetworkavailable(VS.80).aspx. NOTE: this is all new in .NET 2.0!
Direct Link: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wininet/wininet/internetgetconnectedstate.asp