|
|
|
| Как можно определить доступность удаленного ресурса ??
У контрола WebBrowser св-во .Offline = False даже при отсутствии сетевого подключения O_O.
Может как-то через WScript или Win32 Internet API?
При наличии локального сетевого соединения и отсутствии доступа в инет webbrowser открыват пустую страницу, т.е. цикл
Do Until WebBrowser1.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
| всё равно выполняется..
API InternetCheckConnection отрабатывает некорректно, т.е. всегда возвращает True, даже если сеть вообще отключаю..
Кто сталкивался прокомментируйте пожалуйста. | |
|
| |
|
|
|
| Проблема в том, что при подключении к локальной сети и отключенном инете
все API вызовы неадекватны, т.е. проверяется само подключение по локалке
и на основании этого делается вывод о наличии инета !!
Ф-ция IsDestinationReachable опр-ет доступность ресурса, НО при
недоступности последнего, вешает программку.. | |
|
| |
|
|
|
| ничё не понимаю | |
|
| |
|
|
|
| Может он ломится в инет за какими-нибудь библиотеками или ресурсами, которые ему нужны для работы? | |
|
| |
|
|
|
|
не знаю.......
А Вы,П.Полиграфович, - пробовали отлавливать ошибки и сувать их в обработчик ошибок?
Прога виснуть не будет.... | |
|
| |
|
|
|
|
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
|
| |
|
| |
|
|
|
| 42. Вызвать окно "Установка связи с Интернетом"
Private Sub Form_Load()
Result = Shell("rundll32.exe rnaui.DLL,RnaDial", 1)
End Sub | |
|
| |
|
|
|
| 4 Muller:
Да, нет я думаю, что долго открывает пустую страницу он (WebBrowser -
так понял про него речь) по анологии с IE. Тот ведёт себя точно также
при отсутствующем подключении, думает потом открывает пустую..
4 Час:
Ф-цию эту тестил первой, не работает, да и по всей видимости
не может корректно отработать, т.к. соединение у меня нигде не
устанавливается, роутер работает по протоколу PPPoE и никакое
подключение не вызывается, то есть любая машина получает
(ну не совсем любая ) дин. IP и инет в нагрузку ))
Вообще уже была мысль поставить на время вызова
IsDestinationReachable Hook, но какие
сообщения ловить, чтобы например остановить выполнение
ф-ции (если это вообще возможно для API)?? | |
|
| |