Deconnexion internet

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 416 fois - Téléchargée 46 fois


Contenu du snippet

Ce code n'est pas de moi et à le mérite de fonctionner. Je peux dire aussi que j'ai cherché longtemps avant de trouver une source qui marche à tous les coups.
Copier coller le code dans un module et appelez la procédure InternetDeconnexion dans votre feuille. Voilà c'est tout ...

Source / Exemple :


Private Declare Function RasEnumConnections Lib "rasapi32.dll" Alias "RasEnumConnectionsA" (lpRasConn As Any, lpcb As Long, lpcConnections As Long) As Long
Private Declare Function RasHangUp Lib "rasapi32.dll" Alias "RasHangUpA" (ByVal hRasConn As Long) As Long

Private Const ERROR_SUCCESS = 0&

Private Const RAS_MAXENTRYNAME As Integer = 256
Private Const RAS_MAXDEVICETYPE As Integer = 16
Private Const RAS_MAXDEVICENAME As Integer = 128
Private Const RAS_RASCONNSIZE As Integer = 412

Private ReturnCode As Long
Public gstrISPName As String

Private Type RasEntryName
    dwSize As Long
    szEntryName(RAS_MAXENTRYNAME) As Byte
End Type
Private Type RasConn
    dwSize As Long
    hRasConn As Long
    szEntryName(RAS_MAXENTRYNAME) As Byte
    szDeviceType(RAS_MAXDEVICETYPE) As Byte
    szDeviceName(RAS_MAXDEVICENAME) As Byte
End Type

Public Function ByteToString(bytString() As Byte) As String
Dim i As Integer
ByteToString = ""
i = 0
While bytString(i) = 0&
      ByteToString = ByteToString & Chr(bytString(i))
      i = i + 1
Wend
End Function

Public Sub InternetDeconnexion()
   
Dim i As Long
Dim lpRasConn(255) As RasConn
Dim lpcb As Long
Dim lpcConnections As Long
Dim hRasConn As Long

    lpRasConn(0).dwSize = RAS_RASCONNSIZE
    lpcb = RAS_MAXENTRYNAME * lpRasConn(0).dwSize
    lpcConnections = 0
    ReturnCode = RasEnumConnections(lpRasConn(0), lpcb, lpcConnections)
    If ReturnCode = ERROR_SUCCESS Then
       For i = 0 To lpcConnections - 1
           If Trim(ByteToString(lpRasConn(i).szEntryName)) = Trim(gstrISPName) Then
              hRasConn = lpRasConn(i).hRasConn
              ReturnCode = RasHangUp(ByVal hRasConn)
           End If
       Next i
    End If
    
End Sub

Conclusion :


Ce code présente aussi l'intérêt de vérifier si on est ou non connecté à internet (c'est la boucle For) et de connaitre exactement le nombre de connexion. Par contre ce code enlève toutes les connexions.

A voir également

Ajouter un commentaire Commentaires
Messages postés
371
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
17 juin 2013

Le post date un peu, mais...
Ce code ne marche pas en XP SP3
Messages postés
2
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
19 avril 2004

Vraiment bravo, parce que ça marche impec !!! Ca faisait longtemps que je cherchais.
Au fait je sais pas qui à voter mais merci pour la bonne note ...
Pour ??? :
tu dois débuter pour me poser une telle question. Voilà la réponse.
Tu fais : Call InternetDeconnexion ou juste InternetDeconnexion. La première possibilité à au moins le mérite de montrer que tu appelles une procédure alors que la seconde on ne sait pas si c'est une procédure ou une fonction.
Voilà c'est tout
Pour Nox :
Oui l'autre source est moins longue puisque que l'on appelle la fonction InternetautoDialHangUp de la DLL Wininet mais cela ne marche qu'une fois et après tu n'as plus qu'à redémarrer ton appli si tu dois de nouveau te déconnecter.
Afficher les 7 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.