Rubrik: HTML/Internet/Netzwerk · Internet / Browser / IE | VB-Versionen: VB5, VB6 | 23.05.06 |
Prüfen, ob Verbindung zum Internet besteht So findet man heraus, ob eine Verbindung zum Internet besteht... | ||
Autor: Yann Leretaille | Bewertung: | Views: 18.960 |
www.paqua.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Das ganze ist denkbar einfach. Wir überprüfen ob eine Verbindungsart zur DFÜ-Verbindung vorhanden ist, also ob eine verbindung besteht, mit der man sich per DFÜ verbinden kann. Eine Verbindung gilt als inaktiv,wenn keine Verbindung besteht; so können wir also herausfinden, ob der user 'Online' ist oder nicht. Denn nur über eine 'aktive' Verbindung die 'Online' ist lässt sich die DFÜ herstellen.
Hierzu müssen erst einige Variablen definiert werden (das Beispiel befindet sich in einem Modul):
Option Explicit ' Benötigte API-Deklarationen Public Declare Function InternetGetConnectedState Lib "wininet.dll" ( _ ByRef lpSFlags As Long, _ ByVal dwReserved As Long) As Long Const INTERNET_CONNECTION_LAN As Long = &H2 Const INTERNET_CONNECTION_MODEM As Long = &H1 Const INTERNET_CONNECTION_PROXY As Long = &H4 Const INTERNET_CONNECTION_MODEM_BUSY As Long = &H8
Anschließend basteln wir uns noch eine Funktion:
Public Function IfOnline() Dim icFlags As Long ' Verbindungen abfragen Call InternetGetConnectedState(icFlags, 0&) IfOnline = "Offline" ' Wenn Verbunden über LAN If icFlags And INTERNET_CONNECTION_LAN Then IfOnline = "Online" End If ' Wenn Verbunden Über Modem If icFlags And INTERNET_CONNECTION_MODEM Then IfOnline = "Online" End If ' Wenn Verbunden über Proxy If icFlags And INTERNET_CONNECTION_PROXY Then IfOnline = "Online" End If ' Wenn Modem gerade arbeitet (Verbindung besteht oder wird aufgebaut) If icFlags And INTERNET_CONNECTION_MODEM_BUSY Then IfOnline = "Online" End If End Function
Ein Auruf der Funktion wäre dann z.B. so:
If IfOnline = "Offline" Then MsgBox "Es besteht keine Verbindung zum Internet." & vbCrLf & _ "Bitte stellen Sie eine Online-Verbindung her und versuchen Sie es erneut." End If