|
||||
Как определить тип подключения к сети при помощи InternetGetConnectedStateАвтор: Paul Marshal Компилятор: Visual Basic API функция InternetGetConnectedState содержится в wininet.dll (IE4 / IE5) и показывает состояние подключения к сети локальной системы. Она довольно проста в использовании и возвращает TRUE, если присутствует соединение с интернетом, иначе FALSE. Так же функция содержит параметр dwFlags. После вызова функции, dwFlags содержит состояние текущего соединения. Добавьте следующий код в секцию объявлений модуля BAS:
Option Explicit Public Declare Function InternetGetConnectedState Lib "wininet" _ (ByRef dwFlags As Long, _ ByVal dwReserved As Long) As Long 'Для соединения с интернетом используется модем. Public Const INTERNET_CONNECTION_MODEM As Long = &H1 'Для соединения с интернетом используется LAN. Public Const INTERNET_CONNECTION_LAN As Long = &H2 'Для соединения с интернетом используется прокси сервер. Public Const INTERNET_CONNECTION_PROXY As Long = &H4 'No longer used. Public Const INTERNET_CONNECTION_MODEM_BUSY As Long = &H8 Public Const INTERNET_RAS_INSTALLED As Long = &H10 Public Const INTERNET_CONNECTION_OFFLINE As Long = &H20 Public Const INTERNET_CONNECTION_CONFIGURED As Long = &H40 'Следующие функции содержат в себе вызов InternetGetConnectedState Public Function IsNetConnectViaLAN() As Boolean Dim dwflags As Long 'передаём пустую переменную в функцию, чтобы 'получить состояние флагов, отвечающих за соединение Call InternetGetConnectedState(dwflags, 0&) 'возвращаем True если флаги указывают на соединение по LAN IsNetConnectViaLAN = dwflags And INTERNET_CONNECTION_LAN End Function Public Function IsNetConnectViaModem() As Boolean Dim dwflags As Long 'передаём пустую переменную в функцию, чтобы 'получить состояние флагов, отвечающих за соединение Call InternetGetConnectedState(dwflags, 0&) 'возвращаем True если флаги указывают на соединение по модему IsNetConnectViaModem = dwflags And INTERNET_CONNECTION_MODEM End Function Public Function IsNetConnectViaProxy() As Boolean Dim dwflags As Long 'передаём пустую переменную в функцию, чтобы 'получить состояние флагов, отвечающих за соединение Call InternetGetConnectedState(dwflags, 0&) 'возвращаем True если флаги указывают на соединение через проксю IsNetConnectViaProxy = dwflags And INTERNET_CONNECTION_PROXY End Function Public Function IsNetConnectOnline() As Boolean 'здесь не нужно флагов - функция вернёт True если 'присутствует соединие с интернетом любого типа IsNetConnectOnline = InternetGetConnectedState(0&, 0&) End Function Public Function IsNetRASInstalled() As Boolean Dim dwflags As Long 'передаём пустую переменную в функцию, чтобы 'получить состояние флагов, отвечающих за соединение Call InternetGetConnectedState(dwflags, 0&) 'возвращаем True если флаги показывают, что RAS установлен IsNetRASInstalled = dwflags And INTERNET_RAS_INSTALLED End Function Public Function GetNetConnectString() As String Dim dwflags As Long Dim msg As String 'составляем строку для отображения If InternetGetConnectedState(dwflags, 0&) Then If dwflags And INTERNET_CONNECTION_CONFIGURED Then msg = msg & "You have a network connection configured." & vbCrLf End If If dwflags And INTERNET_CONNECTION_LAN Then msg = msg & "The local system connects to the Internet via a LAN" End If If dwflags And INTERNET_CONNECTION_PROXY Then msg = msg & ", and uses a proxy server. " Else: msg = msg & "." End If If dwflags And INTERNET_CONNECTION_MODEM Then msg = msg & "The local system uses a modem to connect to the Internet. " End If If dwflags And INTERNET_CONNECTION_OFFLINE Then msg = msg & "The connection is currently offline. " End If If dwflags And INTERNET_CONNECTION_MODEM_BUSY Then msg = msg & "The local system's modem is busy with a non-Internet connection. " End If If dwflags And INTERNET_RAS_INSTALLED Then msg = msg & "Remote Access Services are installed on this system." End If Else msg = "Not connected to the internet now." End If GetNetConnectString = msg End Function Добавьте на форму кнопку (Command1), шесть текстовых полей (Text1 - Text6). Установите в Text6 свойство Multiline в True и добавьте следующий код:
Private Sub Command1_Click() Text1.Text = IsNetConnectViaLAN() Text2.Text = IsNetConnectViaModem() Text3.Text = IsNetConnectViaProxy() Text4.Text = IsNetConnectOnline() Text5.Text = IsNetRASInstalled() Text6.Text = GetNetConnectString() End Sub
|
|
|||||||||||||||
Нам весьма интересны любые Ваши предложения о сотрудничестве. |
|
|