Partager via


Lecture et écriture dans le Registre à l’aide de l’espace de noms Microsoft.Win32 (Visual Basic)

Bien que My.Computer.Registry vous deviez couvrir vos besoins de base lors de la programmation sur le Registre, vous pouvez également utiliser les classes et RegistryKey les Registry classes dans l’espace Microsoft.Win32 de noms de .NET.

Clés dans la classe De Registre

La Registry classe 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 elles-mêmes sont en lecture seule. Le tableau suivant répertorie et décrit les sept clés exposées par la Registry classe.

Clé Description
ClassesRoot Définit les types de documents et les propriétés associées à ces types.
CurrentConfig Contient des informations de configuration matérielle qui ne sont pas spécifiques à l’utilisateur.
CurrentUser Contient des informations sur les préférences utilisateur actuelles, telles que les variables environnementales.
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 (Matériel, SAM, Sécurité, Logiciel et Système) qui contiennent les données de configuration de l’ordinateur local.
PerformanceData Contient des informations de performances pour les composants logiciels.
Users Contient des informations sur les préférences utilisateur par défaut.

Important

Il est plus sûr d’écrire des données sur l’utilisateur actuel (CurrentUser) que sur l’ordinateur local (LocalMachine). Une condition généralement appelée « squatting » se produit lorsque la clé que vous créez a été créée précédemment par un autre processus, éventuellement malveillant. Pour éviter ce problème, utilisez une méthode, telle que GetValue, qui retourne Nothing si la clé n’existe pas déjà.

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