Check ob INTERNETVERBINDUNG aktiv?

A5 Infoschlampe

Erfahrenes Mitglied
Servus,

wer kann mir verraten wie es möglichst kurz und knapp möglich ist, über ein VB Prog mittels einer Boolean Variable überprüfen zu lassen, ob man zur Zeit im Internet ist oder nicht??!!

Falls nicht soll automatisch eine neue Verbindung über DFÜ Netzwerk aufgebaut werden!

24Std-Begrenzung bei der Flat halt :)

Wer kann mir da helfen, wäre cool.

Danke im Vorraus, Grüsse & Ciao
 

Dario Linsky

Erfahrenes Mitglied
die api-funktion zum neu einwählen find ich zwar gerade nicht, aber prüfen ob man online ist, geht so:

Code:
Public Declare Function InternetGetConnectedState Lib "wininet.dll" Ref lpdwFlags As Long, ByVal dwReserved As Long) As Long

Public Const INET_MODEM As Long = &H1
Public Const INET_LAN As Long = &H2
Public Const INET_PROXY As Long = &H4
Public Const INET_CONFIGURED As Long = &H40
Public Const INET_OFFLINE As Long = &H20
Public Const INET_BUSY As Long = &H8
Public Const INET_INSTALLED As Long = &H10

Public Function GetNetConnectString() As String
On Error GoTo 101

Dim dwflags As Long
Dim msg As String

If InternetGetConnectedState(dwflags, 0&) Then
    If dwflags And INET_CONFIGURED Then
        msg = msg & "Netzwerk ist konfiguriert " & vbCrLf
    End If
    If dwflags And INET_LAN Then
        msg = msg & "LAN"
    End If
    If dwflags And INET_PROXY Then
        msg = msg & ", Proxy"
    Else
        msg = msg & ", ohne Proxy"
    End If
    If dwflags And INET_MODEM Then
        msg = msg & ", Modem"
    End If
    If dwflags And INET_OFFLINE Then
        msg = msg & ", Offline"
    End If
    If dwflags And INET_BUSY Then
        msg = msg & ", Das Modem nutzt gerade eine andere Verbindung"
    End If
    If dwflags And INET_INSTALLED Then
        msg = msg & ", RAS ist installiert"
    End If
Else
    msg = "Keine Verbindung zum Internet"
End If
GetNetConnectString = msg

Exit Function
101 MsgBox "Fehler 101: " & Err.Description, vbCritical, "Fehler"

End Function
 

A5 Infoschlampe

Erfahrenes Mitglied
danke, aber das script funzt irgendwie nicht.

habe die erste zeile zwar so umgeändert ( Declare Function InternetGetConnectedState Lib "wininet.dll" (ByVal lpdwFlags As Long, ByVal dwReserved As Long) As Long )

aber es entsteht immer ein compilerfehler. wieso????
 

Daniel Toplak

Erfahrenes Mitglied
Also die Möglichkeit ist schon richtig, wenn man auch die ganzen Informationen benötigt, ansonsten geht es noch viel Kürzer:

Code:
Private Declare Function InetIsOffline Lib "url.dll" (ByVal dwFlags As Long) As Long
Private Sub Command1_Click()
    Dim notConnected As Boolean
    notConnected = InetIsOffline(0)
    ' die Funktion wird immer mit 0 aufgerufen, sie gibt 0 zurück, wenn eine Verbindung besteht
    ' ansonsten <> 0, wenn keine Verbindung besteht
    If notConnected = False Then
        MsgBox "Verbindung zum Inet besteht"
    Else
        MsgBox "Keine Verbindung zum Inet besteht"
    End If

End Sub


Wie die Verbindung genau über eine DFÜ-Verbindung funktioniert, weiß ich leider nicht, aber schau dir mal die API-Funktion RasDial() an, damit könnte es gehen.

Gruss Homer