Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Etat de la connexion Internet avec VB2005

3 réponses
Avatar
faraminal
Je souhaite connaître en permanence l’état connecté/déconnecté de ma
connexion Internet.
Pour cela, j’utilise depuis longtemps la fonction
‘InternetGetConnectedState’ de l’API Windows qui fonctionne très bien.
Dans Visual Basic 2005, de nouvelles classes sont apparues qui permettent
d’éviter le recours à l’API.
J’ai essayé d’utiliser la classe ‘TcpConnectionInformation’ dont la
propriété ‘State’ renvoie l’état de la connexion. Malheureusement, cela ne
resoud pas mon problème. En effet, lorsque je me connecte, aucun status ne
peut çetre obtenu. La collection des connexions obtenues par la méthode
‘GetActiveTcpConections’ de la classe ‘ IPGlobalProperties’ reste vide. Il
faut accèder effectivement à un site Web pour que cette collection
s’enrichisse et permette d’obtenir les status correspondants.
Ce n’est pas ce que je recherche. Je veux simplement savoir si je suis
connecté à mon provider ou non, ce que fait la fonction
‘InternetGetConnectedState’
Existe t-il à votre connaissance une possibilité de résoudre ce pb avec les
nouvelles classes de VB2005 ?
Merci de vos conseils

--
faraminal

3 réponses

Avatar
White Water
faraminal a écrit :
Je souhaite connaître en permanence l’état connecté/déconnecté de ma
connexion Internet.
Pour cela, j’utilise depuis longtemps la fonction
‘InternetGetConnectedState’ de l’API Windows qui fonctionne très bien.
Dans Visual Basic 2005, de nouvelles classes sont apparues qui permettent
d’éviter le recours à l’API.
J’ai essayé d’utiliser la classe ‘TcpConnectionInformation’ dont la
propriété ‘State’ renvoie l’état de la connexion. Malheureusement, cela ne
resoud pas mon problème. En effet, lorsque je me connecte, aucun status ne
peut çetre obtenu. La collection des connexions obtenues par la méthode
‘GetActiveTcpConections’ de la classe ‘ IPGlobalProperties’ reste vide. Il
faut accèder effectivement à un site Web pour que cette collection
s’enrichisse et permette d’obtenir les status correspondants.
Ce n’est pas ce que je recherche. Je veux simplement savoir si je suis
connecté à mon provider ou non, ce que fait la fonction
‘InternetGetConnectedState’
Existe t-il à votre connaissance une possibilité de résoudre ce pb avec les
nouvelles classes de VB2005 ?
Merci de vos conseils



========================================================================
Bonsoir,

My.Computer.Network.IsAvailable

te renvois un boolean qui te dit si l'ordinateur est connecté.

A plus.
Avatar
Patrick Philippot
Bonjour,

En fait, même la fonction InternetGetConnectedState laisse à désirer dans de
nombreuses circonstances, malheureusement.

My.Computer.Network.IsAvailable



Le réseau (local?) est disponible, ce qui ne veut pas dire que l'on est
connecté à Internet. Voir plus bas le fil de discussion cité en référence.

Ayant été souvent confronté à ce problème, la seule méthode (non native
.Net) qui pour moi a toujours fonctionné est celle que j'ai décrite ici:

http://www.codeguru.com/cpp/i-n/internet/generalinternet/comments.php/c3437/?threadC800

Elle garantit que la machine est connectée à un réseau *externe*, ce qui
veut dire Internet dans la plupart des cas ou bien éventuellement un
extranet pour les entreprises.

Une fois que l'on a vérifié la présence d'une passerelle par défaut par ce
moyen, on peut vérifier si la connexion est effective en lançant une requête
HTTP, ce qui pourra se faire sans risque de déclencher la boîte de dialogue
de dialup.

Voir ce thread

http://groups.google.fr/group/microsoft.public.fr.dotnet.vb/browse_thread/thread/d5074100f559d6ef/583b4c798fc3eac4?lnk=st&q=philippot+GetIpForwardTable&rnum=3#583b4c798fc3eac4

pour une implémentation VB .Net et une discussion sur ce sujet.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
faraminal
Merci pour vos réponses.
Dans mon cas, il semble que my.computer..... resolve parfaitement mon
problème.
Je vais malgré tout étudier le code de Patrick pour une implémentation plus
élaborée au cas où.
Faraminal