Determinare lo stato di connessione del sistema locale e come avviare o terminare una connessione Internet usando Visual Basic .NET o Visual Basic 2005

Questo articolo illustra come determinare lo stato di connessione del sistema locale e come avviare o terminare una connessione Internet usando Visual Basic .NET o Visual Basic 2005.

Versione originale del prodotto: Visual Studio
Numero KB originale: 821770

Riepilogo

Questo articolo dettagliato descrive come determinare lo stato connesso del sistema locale usando la InternetGetConnectedState funzione fornita dall'API Microsoft Windows Internet (WinINet). Questo articolo descrive anche come avviare una connessione Internet e come terminare una connessione Internet usando la InternetDialWinINet funzione API e la InternetHangUpWinINet funzione API.

L'API WinINet è un set di funzioni che consente alle applicazioni di interagire con Gopher, con FTP (File Transfer Protocol) e con HTTP (Hypertext Transfer Protocol) per accedere a molte risorse su Internet. La InternetGetConnectedState funzione restituisce True o False in base all'esistenza di una connessione. Dopo una chiamata alla InternetGetConnectedState funzione, il parametro lpdwFlags contiene un valore predefinito che fornisce altre informazioni sulla connessione. Ad esempio, il valore contenuto da IpdwFlags può indicare che la connessione è una connessione lan,una connessione modem o un altro tipo di connessione. È possibile dedurre se la connessione esiste dal valore restituito della InternetGetConnectedState funzione.

Quando la chiamata di InternetGetconnectionState funzione restituisce True, esiste una connessione di rete. Ciò non garantisce tuttavia l'accesso ai dati o l'accesso ai siti Web attraverso la rete.

La InternetDial funzione avvia una connessione a Internet tramite un modem. Il parametro lpszConnectoid specifica il nome della connessione dial-up usata dalla InternetDial funzione. È possibile usare la InternetHangUpWinINet funzione API per indicare al modem di terminare la connessione specificata dal parametro dwConnection .

Esempio dettagliato

  1. Avviare Microsoft Visual Studio .NET o Microsoft Visual Studio 2005.

  2. Scegliere Nuovo dal menu File, quindi fare clic su Progetto.

  3. In Tipi di progetto fare clic su Progetti di Visual Basic.

    Nota

    In Visual Studio 2005 fare clic su Visual Basic in Tipi di progetto.

  4. In Modelli fare clic su Applicazione Windows.

    Per impostazione predefinita, viene creato Form1.

  5. Fare clic con il pulsante destro del mouse su Form1 e quindi scegliere Visualizza codice.

  6. Aggiungere le istruzioni di dichiarazione seguenti alla classe Form1 :

    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. Scegliere Designer dal menu Visualizza.

  8. Aggiungere un controllo Button a Form1.

  9. Fare clic con il pulsante destro del mouse su Button1 e quindi scegliere Proprietà.

  10. Nel Finestra Proprietà modificare la proprietà Text del controllo Button1 in Rileva connessione.

  11. Fare doppio clic su Rileva connessione e quindi aggiungere il codice seguente nel gestore eventi Button1_Click :

    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. Aggiungere un altro controllo Button a Form1.

  13. Fare clic con il pulsante destro del mouse su Button2 e quindi scegliere Proprietà.

  14. Nel Finestra Proprietà modificare la proprietà Text del controllo Button2 in Dial Up.

  15. Fare doppio clic su Dial Up e quindi aggiungere il codice seguente nel gestore eventi Button2_Click :

    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
    

    Nota

    Sostituire Connessione personale con il nome della connessione dial-up nel computer.

  16. Aggiungere un altro controllo Button a Form1.

  17. Fare clic con il pulsante destro del mouse su Button3 e quindi scegliere Proprietà.

  18. Nella Finestra Proprietà modificare la proprietà Text del controllo Button3 in Blocca.

  19. Fare doppio clic su Blocca e quindi aggiungere il codice seguente nel gestore eventi Button3_Click :

    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. Scegliere Salva tutto dal menu File per salvare il progetto.

  21. Scegliere Avvia dal menu Debug per eseguire l'applicazione.

Verificare che tt funzioni

  1. Eseguire l'applicazione creata nella sezione Esempio dettagliato di questo articolo.

    Viene visualizzato Il modulo 1.

  2. Fare clic su Rileva connessione e quindi notare lo stato connesso corrente del computer locale.

  3. Fare clic su Composizione.

    Viene visualizzata la finestra di dialogo connessione con connessione telefonica.

  4. Fare clic su Blocca.

    Termina la connessione Internet stabilita nel passaggio 3.

Riferimenti

Per altre informazioni, visitare i siti Web seguenti: