Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Помогите пожалуйста... Добавлено: 10.01.04 16:05  

Автор вопроса:  ZoomerSD | ICQ: 148640473 

вот у меня такая проблема, мне нужно узнать, подключён-ли компьютер к интернету, в библиотеке кодов я отрыл вот такой код:

Private Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long
Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long
Private Const RAS95_MaxEntryName = 256
Private Const RAS95_MaxDeviceType = 16
Private Const RAS95_MaxDeviceName = 32
Private Type RASCONN95
dwSize As Long
hRasCon As Long
szEntryName(RAS95_MaxEntryName) As Byte
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
Private Type RASCONNSTATUS95
dwSize As Long
RasConnState As Long
dwError As Long
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type

Public Function IsConnected() As Boolean
Dim TRasCon(255) As RASCONN95
Dim lg As Long
Dim lpcon As Long
Dim RetVal As Long
Dim Tstatus As RASCONNSTATUS95
TRasCon(0).dwSize = 412
lg = 256 * TRasCon(0).dwSize
RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)
Tstatus.dwSize = 160
RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
If Tstatus.RasConnState = &H2000 Then
IsConnected = True
Else
IsConnected = False
End If
End Function

Private Sub Form_Load()
'если есть соединение, то IsConnected() = True, иначе False
MsgBox IsConnected()
End Sub

всё осложняеться тем, что я подключаюсь к интернету через другой компьютер, то-биш через локальную сеть, и мне выдаёт что IsConnected = False , пожалуйста помогите передалать код ак, чтобы он учитывал и локальную сеть, сам я к сожалению в этом не разумею :((

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 10.01.04 16:49

Попробуй InternetGetConnectedStateEx или InternetGetConnectedState

Ответить

Номер ответа: 2
Автор ответа:
 ZoomerSD



ICQ: 148640473 

Вопросов: 135
Ответов: 270
 Профиль | | #2 Добавлено: 10.01.04 17:16

а можно поподробнее про InternetGetConnectedStateEx или InternetGetConnectedState

Ответить

Номер ответа: 3
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #3
Добавлено: 10.01.04 19:35

' Вот что-то должно быть такое, для InternetGetConnectedStateEx
' Для InternetGetConnectedState практически то же, но вот имя соединения - не возвращает!
' Только я не знаю как это ведет себя при подкл. по LAN
' И еще, для той что Ex требуется IE5.0

 

Option Explicit

 

Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" Alias "InternetGetConnectedStateExA" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Long, ByVal dwReserved As Long) As Long

Private Declare Function GetProfStr Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal sSection As String, ByVal sKey As Any, ByVal sDefault As String, ByVal sValue As String, ByVal nSize As Long, ByVal sFileName As String) As Long
Private Const INTERNET_CONNECTION_MODEM = &H1&
Private Const INTERNET_CONNECTION_LAN = &H2&
Private sConName As String, bIsConnected As Boolean, sDeviceType As String

 

Public Sub xxx()
Dim dwFlags As Long, Msg As String, lPos As Long

 

sConName = String$(513, 0)

 

If InternetGetConnectedStateEx(dwFlags, sConName, 512, 0&) Then
bIsConnected = True

lPos = InStr(sConName, vbNullChar)
sConName = Left$(sConName, lPos - 1)

If dwFlags And INTERNET_CONNECTION_LAN Then
sDeviceType = "LAN"

 

ElseIf dwFlags And INTERNET_CONNECTION_MODEM Then
sDeviceType = "Modem"

 

End If
Else
bIsConnected = False

 

End If
End Sub

Ответить

Номер ответа: 4
Автор ответа:
 ZoomerSD



ICQ: 148640473 

Вопросов: 135
Ответов: 270
 Профиль | | #4 Добавлено: 10.01.04 23:53

Вот спасибо, этот код работает.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам