Here's a simple version that might help.
Option Explicit
Option Private Module
Private Declare Function InternetGetConnectedState Lib "wininet" _
(ByRef dwFlags As Long, _
ByVal dwReserved As Long) As Long
Private Declare Function InternetCheckConnection Lib "wininet.dll" _
Alias "InternetCheckConnectionA" (ByVal sUrl As String, _
ByVal lFlags As Long, ByVal lReserved As Long) As Long
Public Function IsNetConnected() As Boolean
Dim lReturn As Long
'you might want to put a get out clause in here that returns true
'if the test is taking place behind a proxy server, which sometimes doesn't
work
'e.g. this checks a registry setting for an option to disable the function
'you can omit the next 4 lines if this is beyond your needs
If CBool(GetSetting("ProgName", "Settings", "DisableNetDetect", "FALSE"))
Then
IsNetConnected = True
Exit Function
End If
IsNetConnected = InternetGetConnectedState(lReturn, 0)
If IsNetConnected = False Then _
IsNetConnected = InternetCheckConnection("
http://www.yahoo.com", 1, 0)
If IsNetConnected = False Then _
MsgBox "You do not appear to have an active internet connection at this
time" _
& vbcrlf & "Please connect to the internet then retry this command",
_
vbOKOnly + vbInformation
End Function
Robin Hammond
www.enhanceddatasystems.com