Comment : lire une valeur à partir d'une clé de Registre dans Visual Basic
La méthode GetValue de l'objet My.Computer.Registry peut être utilisée pour lire des valeurs dans le Registre de Windows.
Si la clé, « software \MyApp » dans l'exemple suivant, n'existe pas, une exception est levée. Si ValueName, « nom » dans l'exemple suivant, n'existe pas, Nothing est retourné.
La méthode d' 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 Registre d'une application Web, l'utilisateur actuel est déterminé par l'authentification et l'emprunt d'identité qui est implémenté dans l'application Web.
Pour lire une valeur à partir d'une clé de Registre
Utilisez la méthode GetValue (en spécifiant le chemin d'accès et le nom) pour lire une valeur de clé de Registre. L'exemple suivant lit la valeur Name de HKEY_CURRENT_USER\Software\MyApp et l'affiche dans une 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 forme d'extrait de code IntelliSense. Dans le sélecteur d'extrait 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 valeur 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 dans le cas contraire.
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 des 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 au niveau de l'ordinateur utilisés par tous les utilisateurs, tandis que HKEY_CURRENT_USER est utilisé pour stocker des données spécifiques à un utilisateur individuel.
Les conditions ci-dessous peuvent générer une exception.
Le nom de la clé est Nothing (ArgumentNullException).
L'utilisateur n'a pas l'autorisation de lire à partir de clés de Registre (SecurityException).
Le nom de la clé dépasse la limite de 255 caractères (ArgumentException).
Sécurité
Pour exécuter ce processus, votre assembly requiert un niveau de privilège accordé par la classe RegistryPermission. Si vous exécutez le programme dans un contexte partiellement fiable, le processus peut lever une exception en raison de privilèges insuffisants. De même, l'utilisateur doit posséder les listes de contrôles d'accès appropriées pour pouvoir créer des paramètres ou écrire dans ceux-ci. Par exemple, une application locale disposant d'une autorisation de sécurité d'accès du code peut ne pas avoir une autorisation du système d'exploitation. Pour plus d'informations, consultez Notions fondamentales de la sécurité d'accès du code.