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.