Ermitteln des Verbindungszustands Ihres lokalen Systems und des Initiierens oder Beendens einer Internetverbindung mithilfe von Visual Basic .NET oder Visual Basic 2005

In diesem Artikel erfahren Sie, wie Sie den Verbindungsstatus Ihres lokalen Systems ermitteln und eine Internetverbindung mithilfe von Visual Basic .NET oder Visual Basic 2005 initiieren oder beenden.

Ursprüngliche Produktversion: Visual Studio
Ursprüngliche KB-Nummer: 821770

Zusammenfassung

In diesem Schritt-für-Schritt-Artikel wird beschrieben, wie Sie den Verbindungsstatus Ihres lokalen Systems mithilfe der InternetGetConnectedState Funktion ermitteln, die die Microsoft Windows Internet (WinINet)-API bereitstellt. In diesem Artikel wird auch beschrieben, wie Sie eine Internetverbindung initiieren und eine Internetverbindung beenden, indem Sie die InternetDialWinINet API-Funktion und die InternetHangUpWinINet API-Funktion verwenden.

Bei WinINet der API handelt es sich um eine Reihe von Funktionen, mit denen Anwendungen mit Gopher, mit FTP (File Transfer Protocol) und mit dem Hypertext Transfer Protocol (HTTP) interagieren können, um auf viele Ressourcen im Internet zuzugreifen. Die InternetGetConnectedState Funktion gibt True oder False zurück, je nachdem, ob eine Verbindung vorhanden ist. Nach einem Aufruf der InternetGetConnectedState Funktion enthält der lpdwFlags-Parameter einen vordefinierten Wert, der weitere Informationen zur Verbindung bereitstellt. Beispielsweise kann der Wert, den IpdwFlags enthält, darauf hinweisen, dass es sich bei der Verbindung um eine LAN-Verbindung (Local Area Network), eine Modemverbindung oder einen anderen Verbindungstyp handelt. Sie können aus dem Rückgabewert der InternetGetConnectedState Funktion ableiten, ob eine Verbindung vorhanden ist.

Wenn der InternetGetconnectionState Funktionsaufruf True zurückgibt, besteht eine Netzwerkverbindung. Dies garantiert jedoch nicht, dass Sie Zugriff auf Daten haben oder dass Sie Zugriff auf Websites im Netzwerk haben.

Die InternetDial Funktion initiiert eine Verbindung mit dem Internet mithilfe eines Modems. Der lpszConnectoid-Parameter gibt den Namen der DFÜ-Verbindung an, die von der InternetDial Funktion verwendet wird. Sie können die InternetHangUpWinINet API-Funktion verwenden, um das Modem anzuweisen, die Verbindung zu beenden, die der dwConnection-Parameter angibt.

Schritt-für-Schritt-Beispiel

  1. Starten Sie Microsoft Visual Studio .NET oder Microsoft Visual Studio 2005.

  2. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.

  3. Klicken Sie unter Projekttypen auf Visual Basic-Projekte.

    Hinweis

    Klicken Sie in Visual Studio 2005 unter Projekttypen auf Visual Basic.

  4. Klicken Sie unter Vorlagen auf Windows-Anwendung.

    Standardmäßig wird Form1 erstellt.

  5. Klicken Sie mit der rechten Maustaste auf Form1, und klicken Sie dann auf Code anzeigen.

  6. Fügen Sie der Form1-Klasse die folgenden Deklarationsanweisungen hinzu:

    Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Int32, _
    ByVal dwReserved As Int32) As Boolean
    
    Private Declare Function InternetDial Lib "Wininet.dll" (ByVal hwndParent As IntPtr, _
    ByVal lpszConnectoid As String, ByVal dwFlags As Int32, ByRef lpdwConnection As Int32, _
    ByVal dwReserved As Int32) As Int32
    
    Private Declare Function InternetHangUp Lib "Wininet.dll" _
    (ByVal lpdwConnection As Int32, ByVal dwReserved As Int32) As Int32
    
    Private Enum Flags As Integer
     'Local system uses a LAN to connect to the Internet.
     INTERNET_CONNECTION_LAN = &H2
     'Local system uses a modem to connect to the Internet.
     INTERNET_CONNECTION_MODEM = &H1
     'Local system uses a proxy server to connect to the Internet.
     INTERNET_CONNECTION_PROXY = &H4
     'Local system has RAS installed.
     INTERNET_RAS_INSTALLED = &H10
    End Enum
    
    'Declaration Used For InternetDialUp.
    Private Enum DialUpOptions As Integer
     INTERNET_DIAL_UNATTENDED = &H8000
     INTERNET_DIAL_SHOW_OFFLINE = &H4000
     INTERNET_DIAL_FORCE_PROMPT = &H2000
    End Enum
    
    Private Const ERROR_SUCCESS = &H0
    Private Const ERROR_INVALID_PARAMETER = &H87
    
    Private mlConnection As Int32
    
  7. Klicken Sie im Menü Ansicht auf Designer.

  8. Hinzufügen eines Schaltflächen-Steuerelements zu Form1.

  9. Klicken Sie mit der rechten Maustaste auf Button1, und klicken Sie dann auf Eigenschaften.

  10. Ändern Sie im Eigenschaftenfenster die Text-Eigenschaft des Button1-Steuerelements in Verbindung erkennen.

  11. Doppelklicken Sie auf Verbindung erkennen, und fügen Sie dann den folgenden Code in den Button1_Click-Ereignishandler ein:

    Dim lngFlags As Long
    
    If InternetGetConnectedState(lngFlags, 0) Then
        'connected.
        If lngFlags And Flags.INTERNET_CONNECTION_LAN Then
            'LAN connection.
            MsgBox("LAN connection.")
        ElseIf lngFlags And Flags.INTERNET_CONNECTION_MODEM Then
            'Modem connection.
            MsgBox("Modem connection.")
        ElseIf lngFlags And Flags.INTERNET_CONNECTION_PROXY Then
            'Proxy connection.
            MsgBox("Proxy connection.")
        End If
    Else
        'not connected.
        MsgBox("Not connected.")
    End If
    
  12. Fügen Sie form1 ein weiteres Button-Steuerelement hinzu.

  13. Klicken Sie mit der rechten Maustaste auf Button2, und klicken Sie dann auf Eigenschaften.

  14. Ändern Sie im Eigenschaftenfenster die Text-Eigenschaft des Button2-Steuerelements in Einwählen.

  15. Doppelklicken Sie auf DFÜ, und fügen Sie dann den folgenden Code im Button2_Click-Ereignishandler hinzu:

    Dim DResult As Int32
    
    DResult = InternetDial(Me.Handle, "My Connection", DialUpOptions.INTERNET_DIAL_FORCE_PROMPT, mlConnection, 0)
    
    If (DResult = ERROR_SUCCESS) Then
        MessageBox.Show("Dial Up Successful", "Dial-Up Connection")
    Else
        MessageBox.Show("UnSuccessFull Error Code" & DResult, "Dial-Up Connection")
    End If
    

    Hinweis

    Ersetzen Sie My Connection durch den Namen der DFÜ-Verbindung auf Ihrem Computer.

  16. Fügen Sie form1 ein weiteres Button-Steuerelement hinzu.

  17. Klicken Sie mit der rechten Maustaste auf Button3, und klicken Sie dann auf Eigenschaften.

  18. Ändern Sie im Eigenschaftenfenster die Text-Eigenschaft des Button3-Steuerelements in Auflegen.

  19. Doppelklicken Sie auf Auflegen, und fügen Sie dann den folgenden Code in den Button3_Click-Ereignishandler ein:

    Dim Result As Int32
    
    If Not (mlConnection = 0) Then
        Result = InternetHangUp(mlConnection, 0&)
        If Result = 0 Then
            MessageBox.Show("Hang up successful", "Hang Up Connection")
        Else
            MessageBox.Show("Hang up NOT successful", "Hang Up Connection")
        End If
    Else
        MessageBox.Show("You must dial a connection first!", "Hang Up Connection")
    End If
    
  20. Klicken Sie im Menü Datei auf Alle speichern , um das Projekt zu speichern.

  21. Klicken Sie im Menü Debuggen auf Start , um die Anwendung auszuführen.

Überprüfen, ob tt funktioniert

  1. Führen Sie die Anwendung aus, die Sie im Abschnitt Schritt-für-Schritt-Beispiel dieses Artikels erstellt haben.

    Form1 wird angezeigt.

  2. Klicken Sie auf Verbindung erkennen, und beachten Sie dann den aktuellen Verbindungsstatus Ihres lokalen Computers.

  3. Klicken Sie auf Einwählen.

    Das Dialogfeld DFÜ-Verbindung wird angezeigt.

  4. Klicken Sie auf Auflegen.

    Die Internetverbindung, die Sie in Schritt 3 hergestellt haben, wird beendet.

References

Weitere Informationen finden Sie auf den folgenden Websites: