Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Detectar internet?

Estas en el tema de Detectar internet? en el foro de Visual Basic clásico en Foros del Web. Hola a todos, Como detectar desde un vb 6.0 si la pc tiene o no conexion a internet??...
  #1 (permalink)  
Antiguo 13/11/2008, 16:58
 
Fecha de Ingreso: enero-2002
Ubicación: Callao - Perú
Mensajes: 1.127
Antigüedad: 22 años, 4 meses
Puntos: 0
Exclamación Detectar internet?

Hola a todos,

Como detectar desde un vb 6.0 si la pc tiene o no conexion a internet??
__________________
SaLuDoS dE:
PePeLuChO dEl PeRú PaRa El MuNdO
  #2 (permalink)  
Antiguo 14/11/2008, 06:33
Avatar de rulsanchez  
Fecha de Ingreso: octubre-2008
Ubicación: Manchester
Mensajes: 64
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Detectar internet?

Hola Pepelucho, no me quiero tirar pegotes, el código no es mio lo he sacado de este foro. Creo que funciona:

En un módulo:

Public Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long
Public Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long
Public Const RAS95_MaxEntryName = 256
Public Const RAS95_MaxDeviceType = 16
Public Const RAS95_MaxDeviceName = 32
Public 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
Public 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 EstamosConectados() As Boolean
Dim TRasCon(255) As RASCONN95
Dim lg As Long
Dim lpcon As Long
Dim ResVal As Long
Dim Tstatus As RASCONNSTATUS95

TRasCon(0).dwSize = 412
lg = 256 * TRasCon(0).dwSize

ResVal = RasEnumConnections(TRasCon(0), lg, lpcon)
If ResVal <> 0 Then
EstamosConectados = False
Exit Function
End If

Tstatus.dwSize = 160
ResVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
If Tstatus.RasConnState = &H2000 Then
EstamosConectados = True
Else
EstamosConectados = False
End If
End Function


Para saber si estas conectado llamá a la función EstamosConectados. Te devuelve True si lo estás y False si no.
Deberias ponerlo en un timer, por ejemplo:

Private Sub Timer1_Timer()

'Reemplazá el Label por lo que quieras (Puede
'ser el icono de la barra de tareas, por ejemplo)

If EstamosConectados = True Then
'Acá iria el código para calcular el tiempo de conexión
Label1.Caption = "Conectados"
Else
'Esto lo podes obviar
Label1.Caption = "Desconectados"
End If
End Sub

Entonces comprobarias cada cierto tiempo si estas o no conectado, iniciando y deteniendo el conteo en forma automática. Como consejo la propiedad Interval del timer poné 500 (0.5 segundos), si pones menos sería mas preciso pero usa muchos recursos (CPU), por lo menos eso me paso a mi.


Suerte Pepelucho ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:17.