SgtKabukinan
Messages postés106Date d'inscriptionlundi 20 septembre 2004StatutMembreDernière intervention23 janvier 2010 15 nov. 2005 à 16:43
pour ma part InetIsOffline ne fonctionne sur mon pc portable WIFI non connecté au reseau... il n'a pourtant pas de connection.... bizarre !
En ce qui concerne la source de Wallon14 après avoir viré le Mod_Wait ou après l'avoir recodé ;)
résultat : CA MARCHE !
bravo
l'API InternetGetConnectedStateEx => fonctionne ds tout les cas
InetIsOffline peut craquer
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20108 20 juil. 2005 à 08:35
hum... bien mais pas top comme solution... La solution avec le php est plus jolie mais pas fiable non plus à 100%... pour la version proposée par Wallon14, j'ai pas testé
wallon14
Messages postés56Date d'inscriptionvendredi 17 octobre 2003StatutMembreDernière intervention 3 juillet 2005 23 avril 2005 à 19:33
Voici une list de fonctions de Detection - Connexion - Deconnexion, fonctinnant sous Win 2000 (pas testé sous XP).
Source trouvée sur VBFrance
rivate Declare Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpSFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Long, ByVal dwReserved As Long) As Long
Public Const INTERNET_AUTODIAL_FORCE_ONLINE = 1
Public Const INTERNET_AUTODIAL_FORCE_UNATTENDED = 2
Public Declare Function InternetAutodial Lib "wininet.dll" (ByVal dwFlags As Long, ByVal dwReserved As Long) As Long
Public Declare Function InternetAutodialHangup Lib "wininet.dll" (ByVal dwReserved As Long) As Long
Public Function IsConnected() As Boolean
' Cette fonction vérifie si une connexion réseau est active
Dim lgLen As Long, lgFlags As Long
Dim stNomConnexion As String
Dim blConnected As Boolean
lgLen = 256
stNomConnexion = Space$(lgLen)
blConnected = InternetGetConnectedStateEx(lgFlags, stNomConnexion, lgLen, 0&)
IsConnected = blConnected
End Function
Function WebConnect() As Boolean
Call InternetAutodial(INTERNET_AUTODIAL_FORCE_ONLINE, 0)
End Function
Function WebDeconnect() As Boolean 'Se déconnecte automatiquement
Call InternetAutodialHangup(0)
DoEvents
Mod_Wait 1
End Function
Function WebAutoConnect() As Boolean 'Affiche la feuille "Se connecter" et se connecte automatiquement
Call InternetAutodial(INTERNET_AUTODIAL_FORCE_UNATTENDED, 0)
End Function
Elastycman
Messages postés40Date d'inscriptionmardi 28 janvier 2003StatutMembreDernière intervention 3 octobre 2006 14 févr. 2005 à 21:47
Bah tout dépend ta conception de la programmation.... le but qu'on a.....
Moi si jdi ca c'est surtout que les seules fois ou j'ai eu besoin de savoir si la personne était connectée j'avais aussi besoin de connaitre la véritable ip...
sibi12
Messages postés337Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 avril 2006 14 févr. 2005 à 17:58
Personnellement je les ai utilisé et elle ne m'ont jamais trahi...
Que le programme soit redistribuer ne change pas grand chose...
tu aura un code mal fini. Tu envoi des données a un serveur distant de plusieurs centaintes voir miliers de kilometre (imagine quelqu'un qui habite le canada qui appelle un serveur francais) pour qu'il te disent si t'es connecter a internet ou pas !!!
ca demande des millions de cycle d'horloge puis ton programme attend la reponse avant de continuer.. bref entre l'appel et la reception tu a vite 1 dixième de seconde alors qu'un appel a une API ce fait en quelque micro voir nanoseconde et ne coute qu'une ligne de code pour la declaration et une pour l'appel contre 6 pour ton code... moi le calcul est vite fait
Elastycman
Messages postés40Date d'inscriptionmardi 28 janvier 2003StatutMembreDernière intervention 3 octobre 2006 14 févr. 2005 à 17:42
Effectivment il y a aussi les API, mais j'ai remarqué (en tt cas avec un api chopé sur allapi) que ca ne marchait pas tjrs.... enfin bon doit y en avoir de très bon...
Pour le server en maintenance a propos de la source que j'ai mis plus haut, faut pas abuzé les gars, a moins de faire des softs destinés à etre distribués... faut vraiment pas avoir de chance pour que ca ne marche pas...!!!
Et puis perso les API moins j'en met dans mes sources mieux jme porte : c'est long pi jcomprend pas tjrs le code que je colle ds mon source et ca me stress lol!!
@++ all,
..::ElastycmaN::..
sibi12
Messages postés337Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 avril 2006 14 févr. 2005 à 15:03
Pour le code d'elasticman il y a aussi comme l'as dit EBartSoft un problème si le serveur est momentanément HS (bien que ce soit peut probable)
pepekiss
Messages postés19Date d'inscriptionsamedi 17 avril 2004StatutMembreDernière intervention14 février 2005 14 févr. 2005 à 12:45
merci elasticman pour ce code. enfin un truc qui marche tout le temps
cs_Sipadan
Messages postés125Date d'inscriptionlundi 5 août 2002StatutMembreDernière intervention23 novembre 2011 14 févr. 2005 à 11:25
Au vu de la source l'idée était séduisante, simple.
Seulement depuis hiers j'ai un spyware et quand IE doit afficher page non trouvé (pas connecté) j'ai une page de pub qui s'affiche (elle doit être dans les temporary) et donc ta source affiche "connecté au net". Par contre le code de Elastycman marche.
@+, Yann.
Elastycman
Messages postés40Date d'inscriptionmardi 28 janvier 2003StatutMembreDernière intervention 3 octobre 2006 13 févr. 2005 à 23:40
Voici un code qui n'est PAS DE MOI, désolé pour l'auteur mais je ne sais plus de qui était cette source (cherchez sur le site). Enfin bref ceci est d'après moi LA meilleure technique pour savoir si l'on est connecté :
'-----------------------------------------------------------
URL = "http://detectip.free.fr/ip_check.php"
ipreel = Inet1.OpenURL(URL)
Do While Inet1.StillExecuting
DoEvents
Loop
Inet1.Execute , "CLOSE"
If ipreel <> "" Then
msgbox "PC connecté au net"
Else
msgbox "PC non connecté au net"
End If
'------------------------------------------------------------
Bon la page PHP n'est pa de moi non + mais en gros, si en plus de savoir si la personne est connectée, vous voulez son IP reelle, meme derriere un proxy, utilisés la variable d'environnement HTTP_X_FORWARDED_FOR.
Voila, vous avez plus qu'à faire une page php qui retourne ste variable et c'est bon!! Si vous ne connaissez pas le PHP, vous pouvez utilisés la page que j'ai mis dans l'exemple, elle est de l'auteur de la source que j'ai donné et elle n'a pas bougé depuis... plus d'un an donc no blem!! Par contre je ne sais pas si la personne qui a fait le script PHP a utilisé la variable d'env que j'ai donné précedemment = ne retourne ptet pas la bonne IP si derrriere un proxy, mais marche quand même pour savoir si l'on est connecté!
Bonne prog @+++
..::ElastycmaN::..
pepekiss
Messages postés19Date d'inscriptionsamedi 17 avril 2004StatutMembreDernière intervention14 février 2005 13 févr. 2005 à 21:32
meme si c'est un 1/10, ça me fera plus plaisir que si tu votes pas.
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 13 févr. 2005 à 19:59
Tu veux vraiment que je note ta source ?
tu serais deçu ...
@+
pepekiss
Messages postés19Date d'inscriptionsamedi 17 avril 2004StatutMembreDernière intervention14 février 2005 13 févr. 2005 à 19:12
note ma source stp ;)
pepekiss
Messages postés19Date d'inscriptionsamedi 17 avril 2004StatutMembreDernière intervention14 février 2005 13 févr. 2005 à 19:04
même si elle est dans le cache, elle s'affiche pas normalement.
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 13 févr. 2005 à 18:26
Ouai puis j'oubliais ... si le serveur de google est en maintenance tu l'as dans l'os
bon aller @+
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 13 févr. 2005 à 18:25
Erreur... pas dans 200% des cas
car si la page de google est dans le cache t'a beau etre deconneté elle s'affiche...
@+
pepekiss
Messages postés19Date d'inscriptionsamedi 17 avril 2004StatutMembreDernière intervention14 février 2005 13 févr. 2005 à 11:34
15 nov. 2005 à 16:43
En ce qui concerne la source de Wallon14 après avoir viré le Mod_Wait ou après l'avoir recodé ;)
résultat : CA MARCHE !
bravo
l'API InternetGetConnectedStateEx => fonctionne ds tout les cas
InetIsOffline peut craquer
20 juil. 2005 à 08:35
23 avril 2005 à 19:33
Source trouvée sur VBFrance
rivate Declare Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpSFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Long, ByVal dwReserved As Long) As Long
Public Const INTERNET_AUTODIAL_FORCE_ONLINE = 1
Public Const INTERNET_AUTODIAL_FORCE_UNATTENDED = 2
Public Declare Function InternetAutodial Lib "wininet.dll" (ByVal dwFlags As Long, ByVal dwReserved As Long) As Long
Public Declare Function InternetAutodialHangup Lib "wininet.dll" (ByVal dwReserved As Long) As Long
Public Function IsConnected() As Boolean
' Cette fonction vérifie si une connexion réseau est active
Dim lgLen As Long, lgFlags As Long
Dim stNomConnexion As String
Dim blConnected As Boolean
lgLen = 256
stNomConnexion = Space$(lgLen)
blConnected = InternetGetConnectedStateEx(lgFlags, stNomConnexion, lgLen, 0&)
IsConnected = blConnected
End Function
Function WebConnect() As Boolean
Call InternetAutodial(INTERNET_AUTODIAL_FORCE_ONLINE, 0)
End Function
Function WebDeconnect() As Boolean 'Se déconnecte automatiquement
Call InternetAutodialHangup(0)
DoEvents
Mod_Wait 1
End Function
Function WebAutoConnect() As Boolean 'Affiche la feuille "Se connecter" et se connecte automatiquement
Call InternetAutodial(INTERNET_AUTODIAL_FORCE_UNATTENDED, 0)
End Function
14 févr. 2005 à 21:47
Moi si jdi ca c'est surtout que les seules fois ou j'ai eu besoin de savoir si la personne était connectée j'avais aussi besoin de connaitre la véritable ip...
14 févr. 2005 à 17:58
Que le programme soit redistribuer ne change pas grand chose...
tu aura un code mal fini. Tu envoi des données a un serveur distant de plusieurs centaintes voir miliers de kilometre (imagine quelqu'un qui habite le canada qui appelle un serveur francais) pour qu'il te disent si t'es connecter a internet ou pas !!!
ca demande des millions de cycle d'horloge puis ton programme attend la reponse avant de continuer.. bref entre l'appel et la reception tu a vite 1 dixième de seconde alors qu'un appel a une API ce fait en quelque micro voir nanoseconde et ne coute qu'une ligne de code pour la declaration et une pour l'appel contre 6 pour ton code... moi le calcul est vite fait
Pourquoi les API rebutent tant les gens alors quels sont tellement profitable à VB... j'ai du mal a cerner ce phénomène (cf : http://www.vbfrance.com/code.aspx?ID=24963)
14 févr. 2005 à 17:42
Pour le server en maintenance a propos de la source que j'ai mis plus haut, faut pas abuzé les gars, a moins de faire des softs destinés à etre distribués... faut vraiment pas avoir de chance pour que ca ne marche pas...!!!
Et puis perso les API moins j'en met dans mes sources mieux jme porte : c'est long pi jcomprend pas tjrs le code que je colle ds mon source et ca me stress lol!!
@++ all,
..::ElastycmaN::..
14 févr. 2005 à 15:03
Pour faire plus propre, il existe un api (même 3) pour ça :
InetIsOffline : http://www.mentalis.org/apilist/InetIsOffline.shtml
Renvoi si connecté ou non
InternetGetConnectedState : http://www.mentalis.org/apilist/InternetGetConnectedState.shtml
Donne le type de connection
(et http://www.mentalis.org/apilist/InternetGetConnectedStateEx.shtml)
14 févr. 2005 à 12:45
14 févr. 2005 à 11:25
Seulement depuis hiers j'ai un spyware et quand IE doit afficher page non trouvé (pas connecté) j'ai une page de pub qui s'affiche (elle doit être dans les temporary) et donc ta source affiche "connecté au net". Par contre le code de Elastycman marche.
@+, Yann.
13 févr. 2005 à 23:40
'-----------------------------------------------------------
URL = "http://detectip.free.fr/ip_check.php"
ipreel = Inet1.OpenURL(URL)
Do While Inet1.StillExecuting
DoEvents
Loop
Inet1.Execute , "CLOSE"
If ipreel <> "" Then
msgbox "PC connecté au net"
Else
msgbox "PC non connecté au net"
End If
'------------------------------------------------------------
Bon la page PHP n'est pa de moi non + mais en gros, si en plus de savoir si la personne est connectée, vous voulez son IP reelle, meme derriere un proxy, utilisés la variable d'environnement HTTP_X_FORWARDED_FOR.
Voila, vous avez plus qu'à faire une page php qui retourne ste variable et c'est bon!! Si vous ne connaissez pas le PHP, vous pouvez utilisés la page que j'ai mis dans l'exemple, elle est de l'auteur de la source que j'ai donné et elle n'a pas bougé depuis... plus d'un an donc no blem!! Par contre je ne sais pas si la personne qui a fait le script PHP a utilisé la variable d'env que j'ai donné précedemment = ne retourne ptet pas la bonne IP si derrriere un proxy, mais marche quand même pour savoir si l'on est connecté!
Bonne prog @+++
..::ElastycmaN::..
13 févr. 2005 à 21:32
13 févr. 2005 à 19:59
tu serais deçu ...
@+
13 févr. 2005 à 19:12
13 févr. 2005 à 19:04
13 févr. 2005 à 18:26
bon aller @+
13 févr. 2005 à 18:25
car si la page de google est dans le cache t'a beau etre deconneté elle s'affiche...
@+
13 févr. 2005 à 11:34