Lecture et écriture dans le Registre à l'aide de l'espace de noms Microsoft.Win32 (Visual Basic)
Même si My.Computer.Registry doit couvrir vos besoins de base lorsque vous programmez le Registre, vous pouvez également utiliser les classes Registry et RegistryKey dans l'espace de noms Microsoft.Win32 du .NET Framework.
Clés dans la classe de Registre
La classe Registry fournit les clés de Registre de base qui permettent d'accéder aux sous-clés et aux valeurs associées. Les clés de base sont en lecture seule. Le tableau ci-après répertorie et décrit les sept clés exposées par la classe Registry.
Clé |
Description |
---|---|
Définit les types de documents et les propriétés associées. |
|
Contient des informations sur la configuration matérielle qui ne sont pas spécifiques à un utilisateur. |
|
Contient des informations sur les préférences de l'utilisateur en cours (par exemple, des variables d'environnement). |
|
Contient des données de Registre dynamiques (par exemple, les données utilisées par les pilotes de périphériques virtuels). |
|
Contient cinq sous-clés (Hardware, SAM, Security, Software et System) qui stockent les données sur la configuration de l'ordinateur local. |
|
Contient des informations sur les performances des composants logiciels. |
|
Contient des informations sur les préférences par défaut des utilisateurs. |
Note de sécurité |
---|
Pour des raisons de sécurité, il est préférable d'écrire des données dans l'utilisateur en cours (CurrentUser) que sur l'ordinateur local (LocalMachine).Il existe un cas, généralement appelé « squattage », où la clé que vous créez a déjà été créée par un autre processus, éventuellement malveillant.Pour empêcher cette situation, utilisez une méthode, telle que GetValue qui retourne Nothing si la clé n'existe pas déjà. |
Lecture d'une valeur 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
Voir aussi
Référence
Try...Catch...Finally, instruction (Visual Basic)
Concepts
Sécurité et Registre (Visual Basic)