Fonctions de Registre

Quand utiliser le Registre

Le registre Windows convient pour stocker de petites quantités de données de configuration (paramètres, préférences, état par utilisateur). Envisagez des alternatives pour d’autres scénarios :

Scénario Recommendation
Paramètres d’application (applications modernes) Préférez ApplicationData.LocalSettings (UWP/WinUI) ou un fichier JSON/XML dans %APPDATA% les applications de bureau. Ils sont plus faciles à sauvegarder, migrer et déboguer.
Données volumineuses ou données structurées Utilisez un fichier (JSON, SQLite, etc.) plutôt que de stocker des objets blob volumineux dans des valeurs de Registre.
Configuration du service à l’échelle de l’ordinateur Le Registre est HKEY_LOCAL_MACHINE approprié : il s’agit du mécanisme standard pour les services Windows.
Préférences par utilisateur (applications de bureau) Le registre en vertu HKEY_CURRENT_USER\Software\<Company>\<App> de ce registre est approprié et conventionnel.
État partagé entre les processus Envisagez de nommer la mémoire partagée, les canaux nommés ou un fichier : le Registre n’a pas de notification de modification intégrée aux lectures de valeurs. Utilisez RegNotifyChangeKeyValue uniquement pour la notification grossière.

Important

Meilleures pratiques en matière de sécurité : ouvrez les clés de Registre avec les droits d’accès minimum nécessaires (par exemple, KEY_READ ou KEY_WRITE) : évitez d’utiliser KEY_ALL_ACCESS ou MAXIMUM_ALLOWED. Écrivez uniquement à HKEY_LOCAL_MACHINE partir de processus avec élévation de privilèges (administrateur). Vérifiez toujours les valeurs de retour des fonctions de Registre : elles retournent ERROR_SUCCESS un code d’erreur Win32 en cas d’échec (et non HRESULT).

Note

Piège courant : les types de chaînes : les valeurs de chaîne du Registre (REG_SZ, REG_EXPAND_SZ) doivent inclure le terminateur Null dans le nombre d’octets passé à RegSetValueEx. Lors de la lecture de chaînes avec RegQueryValueEx ou RegGetValue, toujours null-terminatez la mémoire tampon vous-même si la valeur stockée peut ne pas inclure le terminateur ( certains logiciels tiers écrit des chaînes sans elle.

Voici les fonctions de Registre.

Fonction Description
GetSystemRegistryQuota Récupère la taille actuelle du Registre et la taille maximale que le Registre est autorisé à atteindre sur le système.
RegCloseKey Ferme un handle à la clé de Registre spécifiée.
RegConnectRegistry Établit une connexion à un handle de Registre prédéfini sur un autre ordinateur.
RegCopyTree Copie la clé de Registre spécifiée, ainsi que ses valeurs et ses sous-clés, vers la clé de destination spécifiée.
RegCreateKeyEx Crée la clé de Registre spécifiée.
RegCreateKeyTransacted Crée la clé de Registre spécifiée et l’associe à une transaction.
regDeleteKey Supprime une sous-clé et ses valeurs.
RegDeleteKeyEx Supprime une sous-clé et ses valeurs de la vue spécifique à la plateforme spécifiée du Registre.
RegDeleteKeyTransacted Supprime une sous-clé et ses valeurs de la vue spécifique à la plateforme spécifiée du Registre en tant qu’opération transactionnelle.
RegDeleteKeyValue Supprime la valeur spécifiée de la clé de Registre et de la sous-clé de Registre spécifiées.
RegDeleteTree Supprime les sous-clés et les valeurs de la clé spécifiée de manière récursive.
RegDeleteValue Supprime une valeur nommée de la clé de Registre spécifiée.
RegDisablePredefinedCache Désactive la mise en cache du handle de Registre prédéfini pour HKEY_CURRENT_USER pour le processus actuel.
RegDisablePredefinedCacheEx Désactive la mise en cache pour tous les handles de Registre prédéfinis pour le processus actuel.
RegDisableReflectionKey Désactive la réflexion du Registre pour la clé spécifiée.
RegEnableReflectionKey Active la réflexion du Registre pour la clé désactivée spécifiée.
RegEnumKeyEx Énumère les sous-clés de la clé de Registre ouverte spécifiée.
RegEnumValue Énumère les valeurs de la clé de Registre ouverte spécifiée.
RegFlushKey Écrit tous les attributs de la clé de Registre ouverte spécifiée dans le Registre.
RegGetKeySecurity Récupère une copie du descripteur de sécurité protégeant la clé de Registre ouverte spécifiée.
regGetValue Récupère le type et les données de la valeur de Registre spécifiée.
RegLoadKey Crée une sous-clé sous HKEY_USERS ou HKEY_LOCAL_MACHINE et stocke les informations d’inscription à partir d’un fichier spécifié dans cette sous-clé.
RegLoadMUIString Charge la chaîne spécifiée à partir de la clé et de la sous-clé spécifiées.
RegNotifyChangeKeyValue Avertit l’appelant des modifications apportées aux attributs ou au contenu d’une clé de Registre spécifiée.
regOpenCurrentUser Récupère un handle à la clé HKEY_CURRENT_USER pour l’utilisateur que le thread actuel emprunte l’identité.
regOpenKeyEx Ouvre la clé de Registre spécifiée.
RegOpenKeyTransacted Ouvre la clé de Registre spécifiée et l’associe à une transaction.
RegOpenUserClassesRoot Récupère un handle à la clé HKEY_CLASSES_ROOT pour l’utilisateur spécifié.
RegOverridePredefKey Mappe une clé de Registre prédéfinie à une clé de Registre spécifiée.
RegQueryInfoKey Récupère des informations sur la clé de Registre spécifiée.
RegQueryMultipleValues Récupère le type et les données d’une liste de noms de valeurs associés à une clé de Registre ouverte.
RegQueryReflectionKey Détermine si la réflexion a été désactivée ou activée pour la clé spécifiée.
RegQueryValueEx Récupère le type et les données d’un nom de valeur spécifié associé à une clé de Registre ouverte.
RegRenameKey Modifie le nom de la clé de Registre spécifiée.
RegReplaceKey Remplace le fichier qui sauvegarde une clé de Registre et toutes ses sous-clés par un autre fichier.
RegRestoreKey Lit les informations de Registre dans un fichier spécifié et la copie sur la clé spécifiée.
RegSaveKey Enregistre la clé spécifiée et toutes ses sous-clés et valeurs dans un nouveau fichier.
RegSaveKeyEx Enregistre la clé spécifiée et toutes ses sous-clés et valeurs dans un nouveau fichier. Vous pouvez spécifier le format de la clé ou de la ruche enregistrée.
RegSetKeyValue Définit les données de la valeur spécifiée dans la clé de Registre et la sous-clé de Registre spécifiées.
regSetKeySecurity Définit la sécurité d’une clé de Registre ouverte.
RegSetValueEx Définit les données et le type d’une valeur spécifiée sous une clé de Registre.
RegUnLoadKey Décharge la clé de Registre spécifiée et ses sous-clés à partir du Registre.

 

Les fonctions d’interpréteur de commandes suivantes peuvent être utilisées avec le Registre :

Voici les fonctions de fichier d’initialisation. Ils récupèrent des informations et copient des informations dans un fichier d’initialisation défini par le système ou l’application. Ces fonctions sont fournies uniquement pour la compatibilité avec les versions 16 bits de Windows. Les nouvelles applications doivent utiliser le Registre.

Fonction Description
GetPrivateProfileInt Récupère un entier associé à une clé dans la section spécifiée d’un fichier d’initialisation.
GetPrivateProfileSection Récupère toutes les clés et valeurs de la section spécifiée d’un fichier d’initialisation.
GetPrivateProfileSectionNames Récupère les noms de toutes les sections d’un fichier d’initialisation.
GetPrivateProfileString Récupère une chaîne de la section spécifiée dans un fichier d’initialisation.
GetPrivateProfileStruct Récupère les données associées à une clé dans la section spécifiée d’un fichier d’initialisation.
GetProfileInt Récupère un entier à partir d’une clé dans la section spécifiée du fichier Win.ini.
GetProfileSection Récupère toutes les clés et valeurs de la section spécifiée du fichier Win.ini.
getProfileString Récupère la chaîne associée à une clé dans la section spécifiée du fichier Win.ini.
WritePrivateProfileSection Remplace les clés et les valeurs de la section spécifiée dans un fichier d’initialisation.
WritePrivateProfileString Copie une chaîne dans la section spécifiée d’un fichier d’initialisation.
WritePrivateProfileStruct Copie les données dans une clé dans la section spécifiée d’un fichier d’initialisation.
WriteProfileSection Remplace le contenu de la section spécifiée dans le fichier Win.ini par des clés et des valeurs spécifiées.
writeProfileString Copie une chaîne dans la section spécifiée du fichier Win.ini.

 

Fonctions obsolètes

Ces fonctions sont fournies uniquement pour la compatibilité avec les versions 16 bits de Windows :