elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  duda vb6
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: duda vb6  (Leído 1,270 veces)
markx

Desconectado Desconectado

Mensajes: 11


Ver Perfil
duda vb6
« en: 29 Agosto 2007, 20:22 pm »

hola he estado probando apis, mas precisamente InternetGetConnectedState para detectar si existe conexion a internet...

la siguiente funcion nos dice si hay conexion a internet o no, si hay conecta, si no hay muestra un msgbox...

Código:
Public Function CheckStatusConn() As Boolean
Dim flags As Long
Dim result As Boolean

    result = InternetGetConnectedState(flags, 0)
    If result Then
        Conectar
    Else
    MsgBox "lo siento"
    End If
     
    If flags And INTERNET_CONNECTION_MODEM Then Print "Connection Via Modem"
    If flags And INTERNET_CONNECTION_LAN Then Print "Connecion Via LAN"
    If flags And INTERNET_CONNECTION_PROXY Then Print "Connection uses a Proxy"
    If flags And INTERNET_CONNECTION_MODEM_BUSY Then Print "Connection Via Modem but modem is busy"
   
   
End Function


supongamos k konectar tiene:

Código:
Public Sub Conectar()
WS.Close
WS.RemoteHost = Servidor
WS.RemotePort = Puerto
WS.Connect

End Sub


y a su vez la funcion CheckStatusConn() es ejecutada en el load del form:



Código:
Private Sub Form_Load()

CheckStatusConn

End Sub

ahora lo que quiero yo es que el programa chekee, a cada 30 segundos mas o menos si existe conexion a internet, y si existe que salte a la funcion conectar .. pk asi como lo hice lo chekea solo una vez y no conectara mas si no existe conexion de un principio, me expliko? alguna idea?


« Última modificación: 29 Agosto 2007, 20:26 pm por markx » En línea

markx

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: duda vb6
« Respuesta #1 en: 29 Agosto 2007, 20:25 pm »

ps aki les dejo la api x si les interesa esto a alguien:

Código:
Public Declare Function InternetGetConnectedState Lib "wininet" (lpdwFlags As Long, ByVal dwReserved As Long) As Boolean

Public Const INTERNET_CONNECTION_MODEM = 1
Public Const INTERNET_CONNECTION_LAN = 2
Public Const INTERNET_CONNECTION_PROXY = 4
Public Const INTERNET_CONNECTION_MODEM_BUSY = 8




En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: duda vb6
« Respuesta #2 en: 29 Agosto 2007, 20:34 pm »

private bOnline as boolean


private sub Timer1...
 dim bRet as boolean

bret = CheckStatusConn

if bret then
 if not bOnline then
   bOnline =true
   'aca es donde te conectas
  end if
 else
  bOnline =false
 end if
end sub
« Última modificación: 29 Agosto 2007, 20:38 pm por cobein » En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
HaDeS, -
WarZone Master

Desconectado Desconectado

Mensajes: 284



Ver Perfil WWW
Re: duda vb6
« Respuesta #3 en: 29 Agosto 2007, 21:11 pm »

Podes usar algo tan simple como esto:
Código
  1. Private Sub Command1_Click()
  2. Ws.Connect "www.elhacker.net", 80
  3. End Sub
  4.  
  5. Private Sub Command2_Click()
  6. Ws.Close
  7. End Sub
  8.  
  9. Private Sub Timer1_Timer()
  10. If Ws.State = sckConnected Then
  11.    EstadoLabel.Caption = "Estado: Conectado"
  12. ElseIf Ws.State = sckClosed Then
  13.    EstadoLabel.Caption = "Estado: Desconectado"
  14. Else
  15.    EstadoLabel.Caption = "Estado: Desconectado"
  16. End If
  17. End Sub
  18.  
Con el timer de intervalo 100, o lo que le queras poner.
Al intentar conectar a una pagina el winsock quedara en espera, entonces entra el timer y si no tiene el estado de conectado, supone que no tiene internet, si el winsock esta cerrado, o si no esta cerrado tambien.

Y para usar apis podes utilizar el siguiente codigo, ahi en el tuyo hay una cosa que sobra y es el CheckStatusConn de tipo boleano, no veo que lo uses en otra parte, mira el codigo que hice:
Código
  1. Private Const INTERNET_CONNECTION_OFFLINE = &H20
  2. Private Const INTERNET_CONNECTION_LAN = &H2
  3. Private Const INTERNET_CONNECTION_MODEM = &H1
  4. Private Const INTERNET_CONNECTION_PROXY = &H4
  5. Private Const INTERNET_RAS_INSTALLED = &H10
  6. Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
  7. Private Sub Form_Load()
  8. CheckStatusConn
  9. End Sub
  10.  
  11. Public Function CheckStatusConn()
  12. Dim Flag As Long
  13.  
  14.    InternetGetConnectedState Flag, 0
  15. Verifica:
  16.    If Flag Then
  17.        If Flag <> INTERNET_RAS_INSTALLED Then
  18.            Conectar
  19.            Me.AutoRedraw = True
  20.            If Flag And INTERNET_CONNECTION_MODEM Then Print "Conexion Via Modem"
  21.            If Flag And INTERNET_CONNECTION_LAN Then Print "Conexion Via LAN"
  22.            If Flag And INTERNET_CONNECTION_PROXY Then Print "Conexion usando un Proxy"
  23.            If Flag And INTERNET_CONNECTION_OFFLINE Then Print "Sistema local esta fuera de linea"
  24.        Else
  25.            Flag = 0
  26.            GoTo Verifica
  27.        End If
  28.    Else
  29.            MsgBox "lo siento"
  30.    End If
  31.  
  32. End Function
  33.  
  34. Public Sub Conectar()
  35. WS.Close
  36. WS.RemoteHost = Servidor
  37. WS.RemotePort = Puerto
  38. WS.Connect
  39. End Sub
  40.  
« Última modificación: 29 Agosto 2007, 21:13 pm por HaDeS, - » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines