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

ClassesRoot

Définit les types de documents et les propriétés associées.

CurrentConfig

Contient des informations sur la configuration matérielle qui ne sont pas spécifiques à un utilisateur.

CurrentUser

Contient des informations sur les préférences de l'utilisateur en cours (par exemple, des variables d'environnement).

DynData

Contient des données de Registre dynamiques (par exemple, les données utilisées par les pilotes de périphériques virtuels).

LocalMachine

Contient cinq sous-clés (Hardware, SAM, Security, Software et System) qui stockent les données sur la configuration de l'ordinateur local.

PerformanceData

Contient des informations sur les performances des composants logiciels.

Users

Contient des informations sur les préférences par défaut des utilisateurs.

Note de sécurité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

Tâches

Dépannage : manipulation du Registre (Visual Basic)

Référence

SystemException

ApplicationException

RegistryProxy

Concepts

Vue d'ensemble de la gestion structurée des exceptions pour Visual Basic

Tâches courantes relatives au Registre (Visual Basic)

Sécurité et Registre (Visual Basic)

Lecture et écriture dans le Registre à l'aide de My (Visual Basic)