un API, questa:
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
un controllo:
If InternetGetConnectedState(0&, 0&) = 1 Then
' connesso
Else
' non connesso
End If
un Timer, e ogni tanto controlli se la connessione è attiva o meno.
Oppure provi ad inviare una richista HTTP verso una pagina qualsiasi, ma se la connessione è settata per avviarsi quando c'è una richiesta non va bene.