8.1 Wie stelle ich fest, ob eine DFÜ Verbindung besteht?
VB4-VB6
Von: Thorsten Dörfler
Oftmals benötigt man die Information, ob der Rechner momentan über eine DFÜ - Verbindung mit einem Netzwerk bzw. dem Internet verbunden ist. Dazu kann man das RAS-API befragen, indem man die Anzahl der offenen Verbindungen abfragt und prüft, ob mindestens eine Verbindung besteht. Als handliche Funktion, könnte dies wie folgt aussehen:
' --- Deklaration ---
Private Type RASCONN
dwSize As Long
hRasConn As Long
sEntryName As String * 24
End Type
Private Declare Function RasEnumConnections Lib "rasapi32.dll" Alias _
"RasEnumConnectionsA" (ByRef lpRasconn As RASCONN, _
ByRef lpcB As Long, ByRef lpcConnections As Long) As Long
' Gibt zurück, ob eine DFÜ Verbindung besteht (True) oder nicht (False):
Public Function IsOnline() As Boolean
Dim tRASCONN As RASCONN
Dim lRet As Long
Dim lConnCount As Long
tRASCONN.dwSize = Len(tRASCONN)
lRet = RasEnumConnections(tRASCONN, Len(tRASCONN), lConnCount)
' Geht davon aus, dass eine DFÜ Verbindung besteht,
' wenn die Anzahl der Verbindungen <> 0:
IsOnline = CBool(lConnCount)
End Function
Möglicher Aufruf der Funktion:
Debug.Print IsOnline
An dieser Stelle sei nochmals erwähnt, dass diese Funktion nur prüft, ob eine DFÜ Verbindung zum Internet aufgebaut wurde. Eine Internetverbindung kann aber auch über andere Rechner im Netzwerk hergestellt werden (Internet Connection Sharing), ohne dass eine DFÜ Verbindung benötigt wird. Daher sollte dem Benutzer die Konfigurationsmöglichkeit gegeben werden, wo er festlegen kann, ob eine DFÜ- oder LAN- Verbindung für eine Internetverbindung benötigt wird (siehe z.B. Kontenkonfiguration von Outlook) und in Abhängigkeit dieser Information Gebrauch von der IsOnline Funktion gemacht werden.