I Les 5 « ruches » (branches principales de clés du registre)
- HKEY_CLASSES_ROOT : Liste des extensions de fichier (ex : .aspx,.gif,…) avec applications qui leur sont associés, et liste des composants COM installés.
- HKEY_LOCAL_MACHINE : paramètres de configuration de la machine (HARDWARE,SAM,SECURITY,SOFTWARE,SYSTEM)
- HKEY_CURRENT_CONFIG : paramètres concernant la configuration courante du pc (SOFTWARE, SYSTEM). Cette clé est un alias de la clé HKEY_LOCAL_MACHINE
- HKEY_USERS : paramètres concernant les utilisateurs, avec leur profil
- HKEY_CURRENT_USER : paramètres concernant utilisateur en cours . cette branche est un alias de la clé HKEY_USERS . le profil par défaut de Windows est employé si aucun profil n’a été défini.
- HKEY_DYN_DATA : paramètres de configuration dynamiques (statistiques système,plug & play,…)
II Démarche
Avec . NET il est très facile d’accéder au registre.Registre accessible aussi grâce à « regedit ». Le démarche est toujours la même - 1 – ouvrir la clé (définir le « chemin » de clé, puis essayer de l’ouvrir - 2 – opérations sur la clé - 3 – fermer la clé Opérations sur la clé - Créer une clé (d’abord créer la clé, puis affecter une valeur à cette clé) oRegistryKey = oRegistryKey.CreateSubKey(sCle) oRegistryKey.SetValue(sNomValeur, TextBox1.Text) - Lire une clé oRegistryKey.GetValue(sNomValeur).ToString - Modifier la valeur d’une clé oRegistryKey.SetValue(sNomValeur, TextBox1.Text) - Supprimer une clé (d’abord on supprime la valeur de la clé puis la clé en elle-même) oRegistryKey.DeleteValue(sNomValeur) Microsoft.Win32.Registry.LocalMachine.DeleteSubKey(sCle) |
III Code
'// METHODES
Public Sub creer_cle_registre()
Dim oRegistryKey As Microsoft.Win32.RegistryKey
Dim sCle As String
Dim sNomValeur As String = "Info"
Try
'1 on essaie ouvrir la cle
' a définir la cle
sCle = "Software" & My.Application.Info.AssemblyName
' b essayer ouvrir la cle
oRegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sCle)
'2 si on ne peut pas l'ouvrir c'est quelle nexiste pas donc on la crée
If oRegistryKey Is Nothing Then
' a se placer
oRegistryKey = Microsoft.Win32.Registry.LocalMachine
' b Créer la sous clé
oRegistryKey = oRegistryKey.CreateSubKey(sCle)
' c Créer la valeur >> rk.SetValue(name, value)
oRegistryKey.SetValue(sNomValeur, TextBox1.Text)
' d Refermer la sous-clé
oRegistryKey.Close()
MessageBox.Show("Clé créée avec succès")
Else
' la cle existe deja
MessageBox.Show("la clé existe deja")
End If
Catch ex As Exception
MessageBox.Show("Erreur création de la clé : " & ex.Message.ToString)
End Try
End Sub
Public Sub lire_cle_registre()
Dim oRegistryKey As Microsoft.Win32.RegistryKey
Dim sCle As String
Dim sNomValeur As String = "Info"
Try
'1 on essaie ouvrir la cle
' a définir la cle
sCle = "Software" & My.Application.Info.AssemblyName
' b essayer ouvrir la cle
oRegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sCle)
' 2 selon que la cle existe ou non
If oRegistryKey Is Nothing Then
MessageBox.Show("la clé n'existe pas")
Else
MessageBox.Show(oRegistryKey.GetValue(sNomValeur).ToString)
oRegistryKey.Close()
End If
Catch ex As Exception
MessageBox.Show("Erreur lecture de la clé : " & ex.Message.ToString)
End Try
End Sub
Public Sub modifier_valeur_cle()
Dim oRegistryKey As Microsoft.Win32.RegistryKey
Dim sCle As String
Dim sNomValeur As String = "Info"
Try
'1 on essaie ouvrir la cle
' a définir la cle
sCle = "Software" & My.Application.Info.AssemblyName
' b essayer ouvrir la cle
oRegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sCle, True)
' 2 selon que la cle existe ou non
If oRegistryKey Is Nothing Then
MessageBox.Show("la clé n'existe pas")
Else
oRegistryKey.SetValue(sNomValeur, TextBox1.Text)
oRegistryKey.Close()
MessageBox.Show("la clé a été modifiée avec succès")
End If
Catch ex As Exception
MessageBox.Show("Erreur modification de la clé : " & ex.Message.ToString)
End Try
End Sub
Public Sub supprimer_cle()
Dim oRegistryKey As Microsoft.Win32.RegistryKey
Dim sCle As String
Dim sNomValeur As String = "Info"
Try
'1 on essaie ouvrir la cle
' a définir la cle
sCle = "Software" & My.Application.Info.AssemblyName
' b essayer ouvrir la cle
oRegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sCle, True)
If oRegistryKey Is Nothing Then
MessageBox.Show("la clé n'existe pas")
Else
' Suppression de la valeur
oRegistryKey.DeleteValue(sNomValeur)
' Suppression de la clé
Microsoft.Win32.Registry.LocalMachine.DeleteSubKey(sCle)
oRegistryKey.Close()
MessageBox.Show("Clé supprimée avec succès")
End If
Catch ex As Exception
MessageBox.Show("Erreur suppression de la clé : " & ex.Message.ToString)
End Try
End Sub