Savoir si connecté au net qui marche dans 200% des cas en 9 lignes

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 070 fois - Téléchargée 33 fois

Contenu du snippet

pour cette source, il suffit de mettre dans les composants le microsoft internet controls

Source / Exemple :


Private Sub Form_Load()
Web1.Navigate "http://google.fr"
End Sub
Private Sub Web1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
MsgBox "connecté"
End Sub
Private Sub Web1_NavigateError(ByVal pDisp As Object, URL As Variant, Frame As Variant, StatusCode As Variant, Cancel As Boolean)
MsgBox "non connecté"
End Sub

Conclusion :


certains vont trouver cette source minable, mais son avantage, c'est qu'elle fonctionne tout le temps, même si elle utilise une dll

A voir également

Ajouter un commentaire Commentaires
Messages postés
106
Date d'inscription
lundi 20 septembre 2004
Statut
Membre
Dernière intervention
23 janvier 2010

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
Messages postés
809
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
29 septembre 2010
8
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é
Messages postés
56
Date d'inscription
vendredi 17 octobre 2003
Statut
Membre
Dernière intervention
3 juillet 2005

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
Messages postés
40
Date d'inscription
mardi 28 janvier 2003
Statut
Membre
Dernière intervention
3 octobre 2006

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...
Messages postés
337
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 avril 2006

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

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)
Afficher les 17 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.