Lecture et écriture dans le Registre à l'aide de l'espace de noms Microsoft.Win32 (Visual Basic)
Bien que My.Computer.Registry
doive normalement couvrir vos besoins de base quand vous programmez le Registre, vous pouvez également utiliser les classes Registry et RegistryKey dans l’espace de noms Microsoft.Win32 de .NET.
Clés dans la classe de Registre
La classe Registry fournit les clés de Registre de base qui peuvent être utilisées pour accéder aux sous-clés et à leurs valeurs. Les clés de base proprement dites sont en lecture seule. Le tableau suivant répertorie et décrit les sept clés exposées par la classe Registry.
Clé | Description |
---|---|
ClassesRoot | Définit les types de documents et les propriétés associées à ces types. |
CurrentConfig | Contient des informations sur la configuration matérielle qui ne sont pas propres à l’utilisateur. |
CurrentUser | Contient des informations sur les préférences de l’utilisateur actuel, telles que les variables d’environnement. |
DynData | Contient des données de Registre dynamiques, telles que celles utilisées par les pilotes de périphériques virtuels. |
LocalMachine | Contient cinq sous-clés (Hardware, SAM, Security, Software et System) qui contiennent les données de configuration de l’ordinateur local. |
PerformanceData | Contient des informations sur les performances des composants logiciels. |
Users | Contient des informations sur les préférences de l’utilisateur par défaut. |
Important
Il est plus sûr d’écrire des données dans l’utilisateur actuel (CurrentUser) que dans l’ordinateur local (LocalMachine). Une condition généralement appelée « usurpation » se produit quand la clé que vous créez a été créée précédemment par un autre processus, potentiellement malveillant. Pour éviter ce problème, utilisez une méthode, telle que GetValue, qui retourne Nothing
si la clé n’existe pas encore.
Lecture d’une valeur à partir du Registre
Le code suivant montre comment lire une chaîne à partir de HKEY_CURRENT_USER.
Dim regVersion As Microsoft.Win32.RegistryKey
Dim keyValue = "Software\\Microsoft\\TestApp\\1.0"
regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(keyValue, False)
Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
intVersion = regVersion.GetValue("Version", 0)
regVersion.Close()
End If
Le code suivant lit, incrémente puis écrit une chaîne dans HKEY_CURRENT_USER.
Dim regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
"SOFTWARE\\Microsoft\\TestApp\\1.0", True)
If regVersion Is Nothing Then
' Key doesn't exist; create it.
regVersion = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(
"SOFTWARE\\Microsoft\\TestApp\\1.0")
End If
Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
intVersion = regVersion.GetValue("Version", 0)
intVersion = intVersion + 1
regVersion.SetValue("Version", intVersion)
regVersion.Close()
End If