Guide pratique pour lire une valeur à partir d'une clé de Registre en Visual Basic
La méthode GetValue
de l’objet My.Computer.Registry
peut être utilisée pour lire les valeurs dans le Registre Windows.
Si la clé « Software\MyApp » de l’exemple suivant n’existe pas, une exception est levée. Si le ValueName
(« Name » dans l’exemple suivant) n’existe pas, Nothing
est retourné.
La méthode GetValue
peut également être utilisée pour déterminer si une valeur donnée existe dans une clé de Registre spécifique.
Lorsque le code lit le contenu du Registre à partir d’une application web, l’utilisateur actuel est déterminé par l’authentification et par l’emprunt d’identité implémenté dans l’application web.
Pour lire une valeur dans une clé de Registre
Utilisez la méthode
GetValue
, en spécifiant un chemin et un nom, pour lire une valeur dans une clé de Registre. L’exemple suivant lit la valeurName
dansHKEY_CURRENT_USER\Software\MyApp
et l’affiche dans la boîte de message.Dim readValue = My.Computer.Registry.GetValue( "HKEY_CURRENT_USER\Software\MyApp", "Name", Nothing) MsgBox("The value is " & readValue)
Cet exemple de code est également disponible sous la forme d’un extrait de code IntelliSense. Dans le sélecteur d’extraits de code, il se trouve dans Système d’exploitation Windows > Registre. Pour plus d’informations, consultez Extraits de code.
Pour déterminer si une clé existe dans une clé de Registre
Utilisez la méthode
GetValue
pour récupérer la valeur. Le code suivant vérifie si la valeur existe et retourne un message si elle n’existe pas.If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\TestApp", "TestValue", Nothing) Is Nothing Then MsgBox("Value does not exist.") End If
Programmation fiable
Le Registre contient les clés de niveau supérieur, ou racine, qui sont utilisées pour stocker des données. Par exemple, la clé racine HKEY_LOCAL_MACHINE est utilisée pour stocker des paramètres d’ordinateur utilisés par tous les utilisateurs, tandis que HKEY_CURRENT_USER est utilisée pour stocker des données spécifiques à un utilisateur.
Les conditions ci-dessous peuvent générer une exception.
Le nom de la clé est
Nothing
(ArgumentNullException).L’utilisateur ne dispose pas des autorisations nécessaires pour lire des clés de Registre (SecurityException).
Le nom de la clé dépasse la limite de 255 caractères (ArgumentException).
Sécurité du .NET Framework
Pour exécuter ce processus, votre assembly nécessite un niveau de privilège accordé par la classe RegistryPermission. Si vous l’exécutez dans un contexte de confiance partielle, le processus peut lever une exception en raison de privilèges insuffisants. De même, l’utilisateur doit disposer de listes de contrôle d’accès (ACL) valides pour créer ou écrire des paramètres. Par exemple, une application locale qui dispose de l’autorisation de sécurité d’accès du code peut ne pas disposer des autorisations de système d’exploitation. Pour plus d’informations, consultez Notions fondamentales de la sécurité d’accès du code.
Notes
La sécurité d’accès du code (CAS) a été déconseillée dans toutes les versions du .NET Framework et de .NET. Les versions récentes de .NET ne respectent pas les annotations CAS et produisent des erreurs si les API liées à CAS sont utilisées. Les développeurs doivent chercher d’autres moyens pour accomplir les tâches liées à la sécurité.