Prüfen ob Internetverbindung verfügbar

  • VB.NET

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von Krkodil.

    VB.NET-Quellcode

    1. Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Int32, ByVal dwReserved As Int32) As Int32
    2. Private Const INTERNET_CONNECTION_MODEM As Int32 = &H1
    3. Private Const INTERNET_CONNECTION_LAN As Int32 = &H2
    4. Private Const INTERNET_CONNECTION_CONFIGURED As Int32 = &H40
    5. Private Const INTERNET_CONNECTION_MODEM_BUSY As Int32 = &H8
    6. Private Const INTERNET_CONNECTION_OFFLINE As Int32 = &H20
    7. Private Const INTERNET_CONNECTION_PROXY As Int32 = &H4


    schau dir mal der Code genau an: vbfun.de/cgi-bin/loadframe.pl?ID=vb/tipps/tip0226.shtml


    das was du da rum schreibst

    VB.NET-Quellcode

    1. If InternetGetConnectedState(dwflags, 0) Then
    2. MsgBox("Online")
    3. Else
    4. MsgBox("Offline")
    5. End If
    6. End Sub


    ist eeehh ein totales quatsch !
    Du musst die oben Definierten Constanten unten abfragen, die Funktion gibt dir keinen Boolean zurück. Hast du den Code überhaupt mal richtig angeschaut? Du müsstes ihn eigl. nur 1:1 Kopieren und aus Long -> Integer machen.

    lg.
    lg.

    LucaWelker
    Der zuvor gepostete Code dürfte unter VB 2008/2010 nicht wirklich funktionieren. Die bitweise Abfrage des zurück geworfenen Flags ist nicht richtig. Bei älteren Versionen/VBA dürfte der aber tatsächlich funktionieren weil die den Rückwurf der logischen And-Verknüpfung <> 0 als boolsches True interpetrieren, was z.B. bei mir unter VB 2008 nicht mehr funktioniert ... zumindest nicht ohne implizite Typkonvertierung.

    Ich hab das mal schnell geändert und so sollte er auch an sich unter VB 2010 laufen:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Declare Function InternetGetConnectedState _
    2. Lib "wininet.dll" (ByRef lpdwFlags As Integer, _
    3. ByVal dwReserved As Integer) As Integer
    4. Private Const INTERNET_CONNECTION_MODEM As Integer = &H1
    5. Private Const INTERNET_CONNECTION_LAN As Integer = &H2
    6. Private Const INTERNET_CONNECTION_PROXY As Integer = &H4
    7. Private Const INTERNET_CONNECTION_MODEM_BUSY As Integer = &H8
    8. Private Const INTERNET_CONNECTION_OFFLINE As Integer = &H20
    9. Private Const INTERNET_CONNECTION_CONFIGURED As Integer = &H40
    10. Private Const INTERNET_RAS_INSTALLED As Integer = &H10
    11. Public Function TestInternetConn() As String
    12. Return TestInternet()
    13. End Function
    14. Private Function TestInternet() As String
    15. Dim dwflags As Integer
    16. Dim msg As String = ""
    17. If InternetGetConnectedState(dwflags, 0) > 0 Then
    18. If (dwflags And INTERNET_CONNECTION_CONFIGURED) <> 0 Then
    19. msg = msg & _
    20. "Es ist eine Internetverbindung eingerichtet." & vbCrLf
    21. End If
    22. If (dwflags And INTERNET_CONNECTION_LAN) <> 0 Then
    23. msg = msg & _
    24. "Die Internetverbindung erfolgt über ein Netzwerk"
    25. End If
    26. If (dwflags And INTERNET_CONNECTION_MODEM) <> 0 Then
    27. msg = msg & "Die Internetverbindung erfolgt über ein Modem"
    28. End If
    29. If (dwflags And INTERNET_CONNECTION_PROXY) <> 0 Then
    30. msg = msg & " mittels eines Proxy-Servers." & vbCrLf
    31. Else
    32. msg = msg & "." & vbCrLf
    33. End If
    34. If (dwflags And INTERNET_CONNECTION_OFFLINE) <> 0 Then
    35. msg = msg & "Es besteht z.Zt. keine Internetverbindung. "
    36. End If
    37. If (dwflags And INTERNET_CONNECTION_MODEM_BUSY) <> 0 Then
    38. msg = msg & "Das Modem nutzt z.Zt eine andere Verbindung. "
    39. End If
    40. If (dwflags And INTERNET_RAS_INSTALLED) <> 0 Then
    41. msg = msg & _
    42. "Ein Remote Access Service (RAS) ist installiert. "
    43. End If
    44. Else
    45. msg = "Es besteht z.Zt. keine Internetverbindung."
    46. End If
    47. Return msg
    48. End Function

    Gruß
    Rainer

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „raist10“ ()

    TheKakaduKing schrieb:

    imports system.net
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable = True Then
    Label1.Text = "Verbunden"
    Else
    Label1.Text = "Getrennt"
    End If
    End Sub

    Das funktioniert leider nicht :(
    Benutzt am besten das von vierkant

    *Uhralt Thread - Thema geschlossen* ~NoFear23m

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nofear23m“ ()