Visual Basic Routines 
    
Dterminer et Activer une Connection Internet 
S'applique  : VB4-32, VB5, VB6   

 

 Pr-requis 
  
Rien. 

--------------------------------------------------------------------------------
 

Lors d'une connection active  internet est faite, Windows enregistre cette information dans la base de registre.  En rcuprant les donnes appropries, il devient facile de savoir si la connection est tablit.  A travers un court test, cela montre que sous Win98 et NT4 que  fonctionne  la fois avec le dial-up ainsi qu'avec une connection bas LAN. Et comme c'est une routine assez simple, cela se prsente comme une fonction que l'on peut appeler  partir de n'importe quelle feuille(From) ou Module(BAS).  

 

  Code Module BAS 
  
Ajoutez le code suivant au module BAS: 

--------------------------------------------------------------------------------
 


Option Explicit

Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003

Public Const ERROR_NONE = 0
Public Const ERROR_SUCCESS = 0
Public Const ERROR_BADDB = 1
Public Const ERROR_BADKEY = 2
Public Const ERROR_CANTOPEN = 3
Public Const ERROR_CANTREAD = 4
Public Const ERROR_CANTWRITE = 5
Public Const ERROR_OUTOFMEMORY = 6
Public Const ERROR_INVALID_PARAMETER = 7
Public Const ERROR_ACCESS_DENIED = 8
Public Const ERROR_INVALID_PARAMETERS = 87
Public Const ERROR_NO_MORE_ITEMS = 259

Public Const KEY_ALL_ACCESS = &H3F
Public Const REG_OPTION_NON_VOLATILE = 0

Private Declare Function RegCloseKey _
   Lib "advapi32.dll" _
  (ByVal hKey As Long) As Long

Private Declare Function RegOpenKey _
   Lib "advapi32.dll" Alias "RegOpenKeyA" _
  (ByVal hKey As Long, _
   ByVal sSubKey As String, _
   hKey As Long) As Long

Private Declare Function RegQueryValueEx _
   Lib "advapi32.dll" Alias "RegQueryValueExA" _
  (ByVal hKey As Long, _
   ByVal sKeyValue As String, _
   ByVal lpReserved As Long, _
   lpType As Long, _
   lpData As Any, _
   nSizeData As Long) As Long


Public Sub Main()

   Dim msg As String
   
   Select Case ActiveConnection()
      Case True: msg = "Vous avez une connection internet active."
      Case Else: msg = "Vous n'tes pas connect  internet."
   End Select

   MsgBox msg
   
End Sub


Public Function ActiveConnection() As Boolean
   
  'La fonction vrifie la base de registre pour
  'un connection active
   
   Dim hKey As Long
   Dim lpData As Long
   Dim nSizeData As Long
   
   Const sSubKey = "System\CurrentControlSet\Services\RemoteAccess"
   Const sKeyValue = "Remote Connection"

   If RegOpenKey(HKEY_LOCAL_MACHINE, _
                 sSubKey, _
                 hKey) = ERROR_SUCCESS Then
   
      lpData = 0&
      nSizeData = Len(lpData)
      
      If RegQueryValueEx(hKey, _
                         sKeyValue, _
                         0&, _
                         0&, _
                         lpData, _
                         nSizeData) = ERROR_SUCCESS Then
            
         ActiveConnection = lpData <> 0

      End If
      
      Call RegCloseKey(hKey)
   
   End If

End Function
'--Fin de Bloc--'
   

 Commentaires 
  
Enregistrer le projet, dfinisez Sub Main comme tant l'lment de dmarrage de l'application, et lancer. La boite de message reflte l'tat actuel de votre connection. 

--------------------------------------------------------------------------------
 
