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.