Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: VB

Программирование VB

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Доступность инета..
 
 автор: П.Полиграфович   (04.11.2009 в 03:20)   личное сообщение
 
 

Как можно определить доступность удаленного ресурса ??
У контрола WebBrowser св-во .Offline = False даже при отсутствии сетевого подключения O_O.
Может как-то через WScript или Win32 Internet API?
При наличии локального сетевого соединения и отсутствии доступа в инет webbrowser открыват пустую страницу, т.е. цикл
Do Until WebBrowser1.ReadyState = READYSTATE_COMPLETE 
DoEvents
Loop
всё равно выполняется..
API InternetCheckConnection отрабатывает некорректно, т.е. всегда возвращает True, даже если сеть вообще отключаю..
Кто сталкивался прокомментируйте пожалуйста.

  Ответить  
 
 автор: П.Полиграфович   (05.11.2009 в 15:59)   личное сообщение
 
 

Проблема в том, что при подключении к локальной сети и отключенном инете
все API вызовы неадекватны, т.е. проверяется само подключение по локалке
и на основании этого делается вывод о наличии инета !!
Ф-ция IsDestinationReachable опр-ет доступность ресурса, НО при
недоступности последнего, вешает программку..

  Ответить  
 
 автор: час   (05.11.2009 в 20:21)   личное сообщение
 
 

ничё не понимаю

  Ответить  
 
 автор: Мюллер   (06.11.2009 в 11:12)   личное сообщение
 
 

Может он ломится в инет за какими-нибудь библиотеками или ресурсами, которые ему нужны для работы?

  Ответить  
 
 автор: час   (06.11.2009 в 14:59)   личное сообщение
 
 


не знаю.......
А Вы,П.Полиграфович, - пробовали отлавливать ошибки и сувать их в обработчик ошибок?
Прога виснуть не будет....

  Ответить  
 
 автор: час   (06.11.2009 в 15:41)   личное сообщение
 
 


41. Узнать есть ли активное соединение с Интернетом

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

  Ответить  
 
 автор: час   (06.11.2009 в 15:42)   личное сообщение
 
 

42. Вызвать окно "Установка связи с Интернетом"

Private Sub Form_Load()

Result = Shell("rundll32.exe rnaui.DLL,RnaDial", 1)

End Sub

  Ответить  
 
 автор: П.Полиграфович   (06.11.2009 в 17:32)   личное сообщение
 
 

4 Muller:
Да, нет я думаю, что долго открывает пустую страницу он (WebBrowser -
так понял про него речь) по анологии с IE. Тот ведёт себя точно также
при отсутствующем подключении, думает потом открывает пустую..
4 Час:
Ф-цию эту тестил первой, не работает, да и по всей видимости
не может корректно отработать, т.к. соединение у меня нигде не
устанавливается, роутер работает по протоколу PPPoE и никакое
подключение не вызывается, то есть любая машина получает
(ну не совсем любая ) дин. IP и инет в нагрузку ))
Вообще уже была мысль поставить на время вызова
IsDestinationReachable Hook, но какие
сообщения ловить, чтобы например остановить выполнение
ф-ции (если это вообще возможно для API)??

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList