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

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

Исходная версия продукта: Visual Studio
Исходный номер базы знаний: 821770

Итоги

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

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

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

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

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

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

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

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

    Примечание.

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

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

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

  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. В меню "Вид" нажмите кнопку "Конструктор".

  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. Добавьте другой элемент управления Button в Form1.

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

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

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

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

  18. В окно свойств измените свойство Text элемента управления Button3 на "Зависание".

  19. Дважды щелкните "Зависнуть", а затем добавьте следующий код в обработчик событий 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. Запустите приложение, созданное в разделе "Пошаговые примеры " этой статьи.

    Отображается форма 1.

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

  3. Нажмите кнопку " Телефонный номер".

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

  4. Нажмите кнопку "Зависнуть".

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

Ссылки

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