Share via


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

Voir aussi