DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Le contenu de cette page a été mis à jour en version 27.  Consultez la documentation 27 dès maintenant.
Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion de Windows / Fonctions Base de registre
  • Types des données écrites
  • Manipulation de la base de registre sous Windows Vista (et supérieur)
  • Limites de la fonction RegistreEcrit
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Écrit une valeur dans un registre de la base de registre de Windows.
Attention : La clé doit exister pour pouvoir y écrire une valeur. Pour créer une clé, utilisez la fonction RegistreCréeClé.
// Écrire la valeur "English" dans la valeur "Langage"
// dans la clé "HKEY_CURRENT_USER\SOFTWARE\MonAppli"
ResEcriture = RegistreEcrit("HKEY_CURRENT_USER\SOFTWARE\MonAppli", ...
"Langage", "English")
Syntaxe

Écrire une valeur identifiée par son nom dans une base de registre Masquer les détails

<Résultat> = RegistreEcrit([<Mode d'accès>, ] <Chemin de la clé> , <Nom de la valeur> , <Valeur> [, <Longueur>])
<Résultat> : Booléen
  • Vrai si la valeur a été écrite,
  • Faux dans le cas contraire. Pour plus de détails sur l'erreur, utilisez la fonction ErreurInfo avec la constante errMessage.
<Mode d'accès> : Constante de type Entier
Versions 27 et supérieures
Mode d'accès à la base de registre :
registreMode32Mode d'accès forcé pour accéder à la base de registre comme un programme 32 bits.
registreMode64Mode d'accès forcé pour accéder à la base de registre comme un programme 64 bits.
registreModeAuto
(Valeur par défaut)
Mode d'accès à la base de registre automatique :
  • une application 32 bits exécutée sur un système 32 bits manipule la base de registre comme un programme 32 bits.
  • une application 32 bits exécutée sur un système 64 bits manipule la base de registre à partir de la branche suivante :
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
  • une application 64 bits exécutée sur un système 64 bits manipule la base de registre comme un programme 64 bits.
<Chemin de la clé> : Chaîne de caractères
Chemin complet de la clé à manipuler. Cette clé doit exister pour pouvoir lui donner une valeur.
<Nom de la valeur> : Chaîne de caractères
Nom de la valeur à écrire. Si la valeur n'existe pas, elle sera créée.
<Valeur> : Chaîne de caractères, entier, réel ou pointeur
Valeur à écrire. Cette valeur ne doit pas correspondre directement à un champ de saisie numérique par exemple. Il est nécessaire d'utiliser une variable typée (déclarée en tant que réel, chaîne de caractères, ...).
<Longueur> : Entier optionnel
Longueur de la valeur à écrire lorsque le paramètre <Valeur> correspond à un pointeur.

Écrire une valeur typée identifiée par son nom dans une base de registre Masquer les détails

<Résultat> = RegistreEcrit([<Mode d'accès>, ] <Chemin de la clé> , <Nom de la valeur> , <Valeur> , <Type de la valeur>)
<Résultat> : Booléen
  • Vrai si la valeur a été écrite,
  • Faux dans le cas contraire. Pour plus de détails sur l'erreur, utilisez la fonction ErreurInfo avec la constante errMessage.
<Mode d'accès> : Constante de type Entier
Versions 27 et supérieures
Mode d'accès à la base de registre :
registreMode32Mode d'accès forcé pour accéder à la base de registre comme un programme 32 bits.
registreMode64Mode d'accès forcé pour accéder à la base de registre comme un programme 64 bits.
registreModeAuto
(Valeur par défaut)
Mode d'accès à la base de registre automatique :
  • une application 32 bits exécutée sur un système 32 bits manipule la base de registre comme un programme 32 bits.
  • une application 32 bits exécutée sur un système 64 bits manipule la base de registre à partir de la branche suivante :
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
  • une application 64 bits exécutée sur un système 64 bits manipule la base de registre comme un programme 64 bits.
<Chemin de la clé> : Chaîne de caractères
Chemin complet de la clé à manipuler. Cette clé doit exister pour pouvoir lui donner une valeur.
<Nom de la valeur> : Chaîne de caractères
Nom de la valeur à écrire. Si la valeur n'existe pas, elle sera créée.
<Valeur> : Chaîne de caractères, entier, réel ou pointeur
Valeur à écrire. Si le paramètre <Type de la valeur> est utilisé, la valeur est automatiquement convertie dans le bon type
<Type de la valeur> : Constante de type chaîne de caractères
Type de la valeur à écrire :
registreTypeBinaireClé de type Binaire. Dans ce cas la taille en octets de la donnée écrite sera celle de la variable donnée en <Valeur>.
registreTypeChaîneClé de type Chaîne.
registreTypeChaîneEnvClé de type Chaîne contenant des variables d'environnement.
registreTypeEntierClé de type Entier sur 4 octets.
registreTypeEntier_8Clé de type Entier sur 8 octets.
registreTypeEntierBigEndianClé de type Entier au format big-endian.
registreTypeMultiChaîneClé de type Multichaîne. Dans ce cas, <Valeur> doit correspondre à une série de chaînes séparées par le caractère "Caract(0)".

Écrire une valeur identifiée par son indice dans une base de registre Masquer les détails

<Résultat> = RegistreEcrit([<Mode d'accès>, ] <Chemin de la clé> , <Indice de la valeur> , <Valeur> [, <Longueur>])
<Résultat> : Booléen
  • Vrai si la valeur a été écrite,
  • Faux dans le cas contraire. Pour plus de détails sur l'erreur, utilisez la fonction ErreurInfo avec la constante errMessage.
<Mode d'accès> : Constante de type Entier
Versions 27 et supérieures
Mode d'accès à la base de registre :
registreMode32Mode d'accès forcé pour accéder à la base de registre comme un programme 32 bits.
registreMode64Mode d'accès forcé pour accéder à la base de registre comme un programme 64 bits.
registreModeAuto
(Valeur par défaut)
Mode d'accès à la base de registre automatique :
  • une application 32 bits exécutée sur un système 32 bits manipule la base de registre comme un programme 32 bits.
  • une application 32 bits exécutée sur un système 64 bits manipule la base de registre à partir de la branche suivante :
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
  • une application 64 bits exécutée sur un système 64 bits manipule la base de registre comme un programme 64 bits.
<Chemin de la clé> : Chaîne de caractères
Chemin complet de la clé à manipuler. Cette clé doit exister pour pouvoir lui donner une valeur.
<Indice de la valeur> : Entier
Indice de la valeur à écrire.
<Valeur> : Chaîne de caractères, entier, réel ou pointeur
Valeur à écrire.
<Longueur> : Entier optionnel
Longueur de la valeur à écrire lorsque le paramètre <Valeur> correspond à un pointeur.

Écrire une valeur typée identifiée par son indice dans une base de registre Masquer les détails

<Résultat> = RegistreEcrit([<Mode d'accès>, ] <Chemin de la clé> , <Indice de la valeur> , <Valeur> , <Type de la valeur>)
<Résultat> : Booléen
  • Vrai si la valeur a été écrite,
  • Faux dans le cas contraire. Pour plus de détails sur l'erreur, utilisez la fonction ErreurInfo avec la constante errMessage.
<Mode d'accès> : Constante de type Entier
Versions 27 et supérieures
Mode d'accès à la base de registre :
registreMode32Mode d'accès forcé pour accéder à la base de registre comme un programme 32 bits.
registreMode64Mode d'accès forcé pour accéder à la base de registre comme un programme 64 bits.
registreModeAuto
(Valeur par défaut)
Mode d'accès à la base de registre automatique :
  • une application 32 bits exécutée sur un système 32 bits manipule la base de registre comme un programme 32 bits.
  • une application 32 bits exécutée sur un système 64 bits manipule la base de registre à partir de la branche suivante :
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
  • une application 64 bits exécutée sur un système 64 bits manipule la base de registre comme un programme 64 bits.
<Chemin de la clé> : Chaîne de caractères
Chemin complet de la clé à manipuler. Cette clé doit exister pour pouvoir lui donner une valeur.
<Indice de la valeur> : Entier
Indice de la valeur à écrire.
<Valeur> : Chaîne de caractères, entier, réel ou pointeur
Valeur à écrire.
<Type de la valeur> : Constante de type chaîne de caractères
Type de la valeur à écrire :
registreTypeBinaireClé de type Binaire. Dans ce cas la taille en octets de la donnée écrite sera celle de la variable donnée en <Valeur>.
registreTypeChaîneClé de type Chaîne.
registreTypeChaîneEnvClé de type Chaîne contenant des variables d'environnement.
registreTypeEntierClé de type Entier sur 4 octets.
registreTypeEntier_8Clé de type Entier sur 8 octets.
registreTypeEntierBigEndianClé de type Entier au format big-endian.
registreTypeMultiChaîneClé de type Multichaîne. Dans ce cas, <Valeur> doit correspondre à une série de chaînes séparées par le caractère "Caract(0)".
Remarques

Types des données écrites

Si le paramètre <Type de la valeur> n'est pas utilisé, les données écrites dans la base de registre sont d'un type spécifique en fonction du paramètre <Valeur>. Si le paramètre <Valeur> correspond à :
  • une chaîne de caractères, la valeur écrite sera une clé chaîne (REG_SZ).
  • un entier, la valeur écrite sera du type REG_DWORD.
  • un réel ou un monétaire, la valeur écrite sera du type clé binaire.
  • un pointeur, avec le paramètre <Longueur> correspondant à sa longueur, la valeur écrite sera une clé binaire.

Manipulation de la base de registre sous Windows Vista (et supérieur)

Sous Windows Vista, si le mécanisme de l'UAC est activé, il est nécessaire d'avoir les droits administrateur pour écrire dans la clé "HKEY_LOCAL_MACHINE\SOFTWARE".
Si l'utilisateur n'a pas les droits nécessaires, le mécanisme de l'UAC effectue une redirection automatique vers la clé "HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE". Cette redirection a pour but d'assurer la compatibilité des applications. Les clés écrites dans ce répertoire pourront être lues par l'application qui les a écrites.
Rappel : Lors de la création de l'exécutable, il est possible d'inclure un manifeste à l'exécutable afin de donner les droits administrateur à l'application.

Limites de la fonction RegistreEcrit

La fonction RegistreEcrit ne fonctionne pas sur les entrées du type "(par défaut)". En effet, ces entrées sont spécifiques. Pour atteindre ces entrées, remplacez le nom de la clé par une chaîne vide.
Exemple :
Ne pas faire :
RegistreEcrit("HKEY_CLASSES_ROOT\.jar", "(par défaut)", "myfile")
Faire :
RegistreEcrit("HKEY_CLASSES_ROOT\.jar", "", "myfile")
Classification Métier / UI : Code métier
Composante : wd290std.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
DWORD et QWORD
RegistreTypeEntier_8 //--> QWORD
RegistreTypeEntier //--> DWORD

ricil
17 jan. 2020

Dernière modification : 20/09/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale