Detectar conexcion de Internet desde Vfox

22/10/2004 - 01:00 por Nix | Informe spam
Hola:
Alguien sabe como detectar la conexión de Internet desde Vfox.

Saludos

-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co

PortalFox - NNTP Forum Gatewa
 

Leer las respuestas

#1 Jorge Mota
22/10/2004 - 04:18 | Informe spam
revisa esto:
Declare Long InternetGetConnectedStateEx In "wininet.dll" Long @lpdwFlags,
String @lpszConnectionName , Long dwNameLen, Long
dwReserved
Local cConexion As String,Ret As Long
cConexion = Space(255)
Ret = 0
Ret = InternetGetConnectedStateEx(@Ret, @cConexion, 254, 0)
cConexion =Strtran(cConexion,Chr(0),"")
If Ret = 1 Then
?"Conectado a Internet por medio de: "+ cConexion
Else
?"No esta Conectado a Internet"
EndIf

INTERNET_CONNECTION_CONFIGURED = 0x40
INTERNET_CONNECTION_LAN = 0x2
INTERNET_CONNECTION_MODEM = 0x1
INTERNET_CONNECTION_OFFLINE = 0x20
INTERNET_CONNECTION_PROXY = 0x4
INTERNET_RAS_INSTALLED = 0x10

Declare Long InternetGetConnectedState In "wininet.dll" Long @lpdwFlags,
Long dwReserved
Local Ret As Long
Ret = 0
InternetGetConnectedState(@Ret,0)
If Ret =0 &&fallo
?[Error al Ejecutar API]
Return
Endif
?Ret && este valor es el que nos dice que tenemos
*se le deben ir restando las constantes de la mayor a la menor
*siempre y cuando quepan dentro de lo que vale Ret

If Ret >= INTERNET_CONNECTION_CONFIGURED &&64
?"El Sistema local tiene una conexion valida a internet, pero esta puede o
no estar conectada a internet en este
momento."
Ret = Ret - INTERNET_CONNECTION_CONFIGURED
Endif
If Ret >= INTERNET_CONNECTION_OFFLINE &&32
?"El Sistema local esta en el modo 'OffLine'."
Ret = Ret - INTERNET_CONNECTION_OFFLINE
Endif
If Ret >= INTERNET_RAS_INSTALLED &&16
?"El Sistema local tiene RAS instalado."
Ret = Ret - INTERNET_RAS_INSTALLED
Endif
If Ret >= INTERNET_CONNECTION_PROXY &&4
?"El Sistema Local usa un proxy para conectarse a internet."
Ret = Ret - INTERNET_CONNECTION_PROXY
Endif
If Ret >= INTERNET_CONNECTION_LAN &&2
?"El Sistema Local usa una Red dea area local para conectar a internet."
Ret = Ret - INTERNET_CONNECTION_LAN
Endif
If Ret >= INTERNET_CONNECTION_MODEM &&1
?"El Sistema Local usa un Modem Para conectarse a internet."
Ret = Ret - INTERNET_CONNECTION_MODEM
Endif
If Ret = 0
?[Todas las opciones Validadas]
Else
?[Sobra el valor:] + Alltrim(Transform(Ret))
?[Verifique que opciones no han sido restadas del valor]
Endif



Basicamente en mi caso me devuelve 81
y tenemos que
INTERNET_CONNECTION_CONFIGURED = 64
INTERNET_CONNECTION_LAN = 2
INTERNET_CONNECTION_MODEM = 1
INTERNET_CONNECTION_OFFLINE = 32
INTERNET_CONNECTION_PROXY = 4
INTERNET_RAS_INSTALLED = 16

por lo que 64 cabe dentro de 81
asi que tenemos conexion a internet configurada
y nos quedan 17
el mas alto que cabe es 16 asi que tenemos RAS Instalado
nos queda 1 el cual coincide con Modem, que seria el mas alto.

Solo debes asegurarte de ir restando primero el valor
mas grande que quepa dentro de lo que tenga RET, y restar ese
valor para averiguar que otro dato tienes..



En , Nix escribió:

Hola:
Alguien sabe como detectar la conexión de Internet desde Vfox.

Saludos


PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway





Jorge Mota
Microsoft Visual FoxPro MVP
Guatemala

Preguntas similares