resulta que tengo lo siguiente:
Private Sub Form_Load()
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Verifica:
Dim Flag As Long
InternetGetConnectedState Flag, 0
Dim flags As Long
Dim result As Boolean
result = InternetGetConnectedState(flags, 0)
If result Then
Timer1.Enabled = False
Conectar
Else
Timer1.Enabled = True
GoTo Verifica
End If
End Sub
Private Sub WS_Close()
Timer1.Enabled = True
End Sub
Private Sub WS_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
If WS.State <> sckConnected Then
WS.Close
End If
End Sub
y la funcion Conectar bueno utiliza un un winsock llamado WS, creo que no es necesario ponerla aqui, la cosa es que cuando inicio windows normalmente, el timer se activa en el form_load y empieza a chequear todo el tiempo si existe conexion a internet, si conecto a internet todo bárbaro, salta a la funcion conectar pero si luego desconecto ya no vuelve mas a chequear para volverse a conectar d enuevo y asi.. a que se debe eso? que es lo que tengo querhacer para que por cualquier cosa que suceda error, o perdida de conexion vuelva a chequear para conectarse de nuevo?
gracias..
[code]
[/code]
podes hacer esto:
If result Then
Timer1.interval = 100 ' o un numero mayor a lo normal
Conectar
Else
Timer1.Enabled = True
GoTo Verifica
End If
Es decir, una vez q esta conectado en vez de desactivar el timer, solo le elevas el tiempo de intervalo, y si llegase a desconectar internet q vuelva a empezar a verificar con otro tiempo mas corto. Lo del "GoTo Verifica" Creo q esta de mas, es decir el timer solito se vuelve a ejecutar, En realidad todo lo del "else" no va.
Espero q te sirva eso.
Saludos!!
Yo resolvi una cosa asi, colocando en un timer los estados de conexion del winsock:
' estado de la conexion ws
Private Sub T1Estado_Timer()
T1Estado.Interval = 1
lblestado = ws.State
Select Case ws.State
Case 0
lblestado = "Conexion Cerrada con el Servidor."
Case 2
lblestado = "Esperando conexión"
Case 4
lblestado = "Resolviendo Host"
Case 5
lblestado = "Host resuelto"
Case 6
lblestado = "Intentando conectar"
Case 7
lblestado = "Conectado con el Servidor : "
Case 8
lblestado = "Cerrando comunicacion"
Form_Load
Case 9
lblestado = "Error de conexión"
Form_Load
End Select
End Sub
Y en el form load coloco un if para comprobar continuamente los estados de conexion, siempre que la conexion este cerrada, el timer de estado te devuelve al form load y este otra vez a comprobar estado.
Te añado el if del form load para que lo veas mejor.
estado = "7"
estadows = ws.State
If estadows <> estado Then
ws.Close
ws.CONNECT
Else
T1Estado_Timer
End If
Espero poder ayudarte con este trocito de codigo.
Un saludo