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.
4 juil. 2009 à 15:25
Ce code ne marche pas en XP SP3
19 avril 2004 à 22:37
16 oct. 2001 à 10:26
16 oct. 2001 à 10:18
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
16 oct. 2001 à 10:13
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.
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.