Определение состояния подключения локальной системы и способов запуска или прекращения подключения к Интернету с помощью Visual Basic .NET или Visual Basic 2005

В этой статье показано, как определить состояние подключения локальной системы, а также как инициировать или завершить подключение к Интернету с помощью Visual Basic .NET или Visual Basic 2005.

Оригинальная версия продукта: Visual Studio
Оригинальный номер базы знаний: 821770

Сводка

В этой пошаговой статье описывается, как определить состояние подключения локальной системы с помощью InternetGetConnectedState функции, предоставляемой API Microsoft Windows Internet (WinINet). В этой статье также описывается, как инициировать подключение к Интернету и как завершить подключение к Интернету с помощью InternetDialWinINet функции API и функции InternetHangUpWinINet API.

WinINet API — это набор функций, которые позволяют приложениям взаимодействовать с Gopher, с протоколом передачи файлов (FTP) и протоколом HTTP для доступа ко многим ресурсам в Интернете. Функция InternetGetConnectedState возвращает значение True или False в зависимости от того, существует ли соединение. После вызова InternetGetConnectedState функции параметр lpdwFlags содержит предопределенное значение, предоставляющее дополнительные сведения о подключении. Например, значение, которое содержит IpdwFlags , может указывать на то, что подключение является подключением по локальной сети (LAN), подключением к модему или другим типом подключения. Из возвращаемого InternetGetConnectedState значения функции можно определить, существует ли соединение.

InternetGetconnectionState Когда вызов функции возвращает значение True, существует сетевое подключение. Однако это не гарантирует, что у вас есть доступ к данным или доступ к веб-сайтам по сети.

Функция InternetDial инициирует подключение к Интернету с помощью модема. Параметр lpszConnectoid указывает имя коммутируемого подключения, используемого функцией InternetDial . Функцию InternetHangUpWinINet API можно использовать, чтобы указать модему завершить подключение, указанное параметром dwConnection .

Пошаговый пример

  1. Запустите Microsoft Visual Studio .NET или Microsoft Visual Studio 2005.

  2. В меню Файл выберите пункт Создать и затем пункт Проект.

  3. В разделе Типы проектов щелкните Проекты Visual Basic.

    Примечание.

    В Visual Studio 2005 щелкните Visual Basic в разделе Типы проектов.

  4. В разделе Шаблоны щелкните Приложение Windows.

    По умолчанию создается Form1.

  5. Щелкните правой кнопкой мыши Form1 и выберите пункт Просмотреть код.

  6. Добавьте следующие операторы объявления в класс 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. В меню Вид выберите пункт Designer.

  8. Добавьте элемент управления Button в Form1.

  9. Щелкните правой кнопкой мыши Button1 и выберите пункт Свойства.

  10. В окно свойств измените свойство Text элемента управления Button1 на Обнаружение подключения.

  11. Дважды щелкните Обнаружение подключения, а затем добавьте следующий код в обработчик событий 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. Добавьте еще один элемент управления Кнопка в Form1.

  13. Щелкните правой кнопкой мыши Button2 и выберите пункт Свойства.

  14. В окно свойств измените свойство Text элемента управления Button2 на Dial Up.

  15. Дважды щелкните Dial Up и добавьте следующий код в обработчик событий 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
    

    Примечание.

    Замените "Мое подключение" именем коммутируемого подключения на компьютере.

  16. Добавьте еще один элемент управления Кнопка в Form1.

  17. Щелкните правой кнопкой мыши Button3 и выберите пункт Свойства.

  18. В окно свойств измените свойство Text элемента управления Button3, чтобы зависнуть.

  19. Дважды щелкните Hang Up и добавьте следующий код в обработчик событий 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. В меню Файл выберите команду Сохранить все , чтобы сохранить проект.

  21. В меню Отладка нажмите кнопку Пуск , чтобы запустить приложение.

Убедитесь, что tt работает

  1. Запустите приложение, созданное в разделе Пошаговые примеры этой статьи.

    Отобразится форма Form1.

  2. Щелкните Обнаружить подключение, а затем обратите внимание на текущее состояние подключения локального компьютера.

  3. Щелкните Dial Up (Коммутируемая связь).

    Откроется диалоговое окно коммутируемого подключения.

  4. Щелкните Повесить.

    Подключение к Интернету, установленное на шаге 3, завершается.

Ссылки

Дополнительные сведения см. на следующих веб-сайтах: