Foros del Web » Programación para mayores de 30 ;) » Programación General »

detectar conexion a internet en VB6

Estas en el tema de detectar conexion a internet en VB6 en el foro de Programación General en Foros del Web. Hola gente... q tal? Quisiera que me ayuden en esto.... hice un programita para controlar mi tiempo en internet... nada complejo... solo se ubica en ...
  #1 (permalink)  
Antiguo 12/10/2004, 14:00
Avatar de alealvaro  
Fecha de Ingreso: junio-2004
Ubicación: BA - Argentina
Mensajes: 210
Antigüedad: 20 años, 5 meses
Puntos: 12
Pregunta detectar conexion a internet en VB6

Hola gente... q tal?
Quisiera que me ayuden en esto.... hice un programita para controlar mi tiempo en internet... nada complejo... solo se ubica en la Barra de Tareas y al conectarme lo activo y empieza a contar y a acumular el tiempo total hasta q obvio... le doy que pare...
Y mi consulta sería porque quisiera que detecte solito cuando me conecto en internet y cuando me desconecto... ¿alguien tiene el código para que pueda lograr esto?... por cierto.. está echo en Visual Basic 6... ahh!... y si me pasan el código... les agradecería que me orienten en donde tengo q ponerlo... o sea... por ejemplo... si en el form_load o en donde!....
Muchas gracias desde ya!
Suerte!!!!
Alejandro
  #2 (permalink)  
Antiguo 13/10/2004, 10:56
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 20 años, 1 mes
Puntos: 3
Exclamación

NO LO HE PROBADO ASI QUE SUERTE

Const ERROR_SUCCESS = 0&
Const RAS_MAXENTRYNAME = 256
Const RAS_MAXDEVICETYPE = 16
Const RAS_MAXDEVICENAME = 128
Const RAS_RASCONNSIZE = 412
Private Type RasEntryName
dwSize As Long
szEntryName(RAS_MAXENTRYNAME) As Byte
End Type
Private Type RasConn
dwSize As Long
hRasConn As Long
szEntryName(RAS_MAXENTRYNAME) As Byte
szDeviceType(RAS_MAXDEVICETYPE) As Byte
szDeviceName(RAS_MAXDEVICENAME) As Byte
End Type
Private Declare Function RasEnumConnections Lib "rasapi32.dll" (lpRasConn As Any, lpcb As Long, lpcConecctions As Long) As Long
Private Declare Function RasHangUp Lib "rasapi32.dll" Alias "RasHangUpA" (ByVal hRasConn As Long) As Long
Sub HangUp()
Dim i As Long
Dim lpRassConn(255) As RasConn
Dim lpcb As Long
Dim lpcConnections As Long
Dim hRasConn As Long
lpRasConn(0).dwSize = RAS_RASCONNSIZE
lpcb = RAS_MAXENTRYNAME * lpRasConn(0).dwSize
lpcConnections = 0
ReturnCode = RasEnumConnections(lpRasConn(0), lpcb, lpcConnections)

If ReturnCode = ERROR_SUCCESS Then
For i = o To lpcConnections - 1
If Trim(CStr(lpRasConn(i).szEntryName)) = Trim(gstrispname) Then
hRasConn = lpRasConn(i).hRasConn
ReturnCode = RasHangUp(ByVal hRasConn)
End If
Next
End If
End Sub
  #3 (permalink)  
Antiguo 19/10/2004, 08:13
Avatar de alealvaro  
Fecha de Ingreso: junio-2004
Ubicación: BA - Argentina
Mensajes: 210
Antigüedad: 20 años, 5 meses
Puntos: 12
Mil gracias por el código, pero me faltaría me digas una cosita... ¿donde tendría q ponerlo? jeje perdón la ignorancia, pero es q nunca trabaje uno de este estilo...
Espero me respondas... y muchas gracias!!!
Alejandro
  #4 (permalink)  
Antiguo 19/10/2004, 08:37
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 20 años, 1 mes
Puntos: 3
De acuerdo

PONLO EN EL LOAD DEL FORMULARIO O EN UN COMMAND NO SE DONDE QUIERAS, JEJEJE AHORA SI PUEDO POSTEAR CON MI COLOR FAVORITO
  #5 (permalink)  
Antiguo 24/10/2004, 12:05
Avatar de alealvaro  
Fecha de Ingreso: junio-2004
Ubicación: BA - Argentina
Mensajes: 210
Antigüedad: 20 años, 5 meses
Puntos: 12
una ultima preguntita... porq no entiendo... q variable cambiaría al momento de conetarse a internet y al desconectarse... o sea... a cual debo hacer referencia para q haga algo cuando se conecte... Gracias!!!
Alejandro
  #6 (permalink)  
Antiguo 24/10/2004, 23:53
Avatar de marcos1979  
Fecha de Ingreso: abril-2004
Ubicación: 62º 06' 18" O / 33º 07' 47" S
Mensajes: 331
Antigüedad: 20 años, 7 meses
Puntos: 1
Probá con esto (yo hice un programa como el tuyo y lo usé... y 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
  #7 (permalink)  
Antiguo 25/10/2004, 08:59
Avatar de alealvaro  
Fecha de Ingreso: junio-2004
Ubicación: BA - Argentina
Mensajes: 210
Antigüedad: 20 años, 5 meses
Puntos: 12
Mil gracias loko!!!.. ahi lo probé y anduvo joya :D:D:D
Buenisimo!!!!!
Gracias!!!!
Alejandro
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 23:51.