Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 :
- AssocCreate
- AssocQueryKey
- AssocQueryString
- AssocQueryStringByKey
- shCopyKey
- SHDeleteEmptyKey
- SHDeleteKey
- SHDeleteValue
- SHEnumKeyEx
- SHEnumValue
- SHGetValue
- SHQueryInfoKey
- SHQueryValueEx
- SHRegCloseUSKey
- SHRegCreateUSKey
- SHRegDeleteEmptyUSKey
- SHRegDeleteUSValue
- SHRegDuplicateHKey
- SHRegEnumUSKey
- SHRegEnumUSValue
- SHRegGetBoolUSValue
- SHRegGetIntW
- SHRegGetPath
- SHRegGetUSValue
- shRegOpenUSKey
- SHRegQueryInfoUSKey
- SHRegQueryUSValue
- SHRegSetPath
- SHRegSetUSValue
- SHRegWriteUSValue
- SHSetValue
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 :
- RegCreateKey
- RegEnumKey
- regOpenKey
- RegQueryValue
- RegSetValue