Определение состояния подключения локальной системы и способов запуска или прекращения подключения к Интернету с помощью 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
значения функции можно определить, существует ли соединение.
InternetGetconnectionState
Когда вызов функции возвращает значение True, существует сетевое подключение. Однако это не гарантирует, что у вас есть доступ к данным или доступ к веб-сайтам по сети.
Функция InternetDial
инициирует подключение к Интернету с помощью модема. Параметр lpszConnectoid указывает имя коммутируемого подключения, используемого функцией InternetDial
. Функцию InternetHangUp
WinINet
API можно использовать, чтобы указать модему завершить подключение, указанное параметром dwConnection .
Пошаговый пример
Запустите Microsoft Visual Studio .NET или Microsoft Visual Studio 2005.
В меню Файл выберите пункт Создать и затем пункт Проект.
В разделе Типы проектов щелкните Проекты Visual Basic.
Примечание.
В Visual Studio 2005 щелкните Visual Basic в разделе Типы проектов.
В разделе Шаблоны щелкните Приложение Windows.
По умолчанию создается Form1.
Щелкните правой кнопкой мыши Form1 и выберите пункт Просмотреть код.
Добавьте следующие операторы объявления в класс 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
В меню Вид выберите пункт Designer.
Добавьте элемент управления Button в Form1.
Щелкните правой кнопкой мыши Button1 и выберите пункт Свойства.
В окно свойств измените свойство Text элемента управления Button1 на Обнаружение подключения.
Дважды щелкните Обнаружение подключения, а затем добавьте следующий код в обработчик событий 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
Добавьте еще один элемент управления Кнопка в Form1.
Щелкните правой кнопкой мыши Button2 и выберите пункт Свойства.
В окно свойств измените свойство Text элемента управления Button2 на Dial Up.
Дважды щелкните 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
Примечание.
Замените "Мое подключение" именем коммутируемого подключения на компьютере.
Добавьте еще один элемент управления Кнопка в Form1.
Щелкните правой кнопкой мыши Button3 и выберите пункт Свойства.
В окно свойств измените свойство Text элемента управления Button3, чтобы зависнуть.
Дважды щелкните 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
В меню Файл выберите команду Сохранить все , чтобы сохранить проект.
В меню Отладка нажмите кнопку Пуск , чтобы запустить приложение.
Убедитесь, что tt работает
Запустите приложение, созданное в разделе Пошаговые примеры этой статьи.
Отобразится форма Form1.
Щелкните Обнаружить подключение, а затем обратите внимание на текущее состояние подключения локального компьютера.
Щелкните Dial Up (Коммутируемая связь).
Откроется диалоговое окно коммутируемого подключения.
Щелкните Повесить.
Подключение к Интернету, установленное на шаге 3, завершается.
Ссылки
Дополнительные сведения см. на следующих веб-сайтах:
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по