Delphipage - la reference en Delphi
Accueil - Astuces - Composants - Programmes - Tutoriaux - Livres - Liens
 Sources
- Astuces
- Composants
- Programmes
- Tutoriaux
 Rechercher
- Delphipage
- Ngscan
 Ressources
- Lexique Delphi
- Livres
- News
- Patchs Delphi
 Liens
- Borland France
- CodeGear
- Les meilleurs sites


Tutoriaux - Base de registres

Présentation

La base de registres sert à enregistrer des informations qui serviront au système d'exploitation Windows ou à des applications.
Delphi définit deux classes pour manipuler la base de registres :
-TRegister
-TRegIniFile

La classe TRegIniFile est un dérivé de la classe TRegistry. Elle apporte les méthodes pour manipuler la base de registre comme un fichier ini.


Comment allez dans la base de registre ?

Pour aller dans la base de registre, cliquez dans le menu "Démarrer" puis sur "Exécuter". Une fenêtre s'ouvre. Cliquez alors dans la partie blanche en face de "Ouvrir" puis tapez "regedit" ou "reged32" pour Windows NT.



Cette éditeur Windows permet d'ajouter, de modifier et de supprimer des clés dans la base de registres.
Attention, si vous modifiez des paramàtres dans la base de registre, cela influencera sur le ou les sources qui utilisent l'élément modifier. A noté également que quelques clés particulières changent suivant la version de Windows.


Les clés principales

Une clé principale, également appelée clé racine, est est une section qui contient des sous-clés et des valeurs.

Nom des clés

Description
 HKEY_CLASS_ROOT Paramètre des logiciels.
 HKEY_CURRENT_USER Pointe sur une des sous clés de HKey_Users.
 HKEY_LOCAL_MACHINE Données liées à la configuration de la machine.
 HKEY_USERS Profils des différents utilisateurs.
 HKEY_CURRENT_CONFIG Pointe sur la sous-clés Config de la clé HKey_Local_Machine.
 HKEY_DYN_DATA Contient egalement des informations sur le système. Leur disponibilité doit être rapide.


Les principales méthodes

Méthode
Description
CloseKey Ferme la clés et écrit les données dans la clé.
CreateKey Créer une clé.
DeleteKey Efface la clé indiqué.
GetKeyNames Permet de renvoyer toutes les sous--clés de la clé en cours dans un objet TString.
GetValueNames Permet de renvoyer le nom de toutes les valeurs de la clé courante.
KeyExists Permet de renvoyer True si la clé existe ou False si elle n'existe pas.
LoadKey Crée une sous-clé de la clé racine et charge les informations de registre à partir d'un fichier dans la nouvelle sous-clé.
OpenKey Ouvre la clé indiquée.
ReadBinaryData Permet de lire des données binaires à partir de la valeur indiquée.
ReadBool Permet de lire une valeur booléan.à parti de la valeur indiquée
ReadDateTime Permet de lire une date et une heure à partir de la valeur indiquée.
ReadFloat Permet de lire un nombre réel à partir de la valeur indiquée.
ReadInteger Permet de lire une chaine à partir de la valeur indiquée.
ValueExists Permet de renvoyer à True si la valeur indiquée existe
SaveKey Ouvre la clé spécifiée et enregistre cette clé et toutes ses sous-clés et valeurs dans un fichier essaim.
WriteBinarydata Permet d'écrire une valeur binaire dans la valeur indiquée.
WriteBool Permet d'écrire une valeur booléenne dans la valeur indiquée
WriteDateTime Permet d'écrire un objet TDateTime dans la valeur indiquée.
WriteDate Permet d'écrire un date dans la valeur indiquée.
WriteTime Permet d'écrire une heure dans la valeur indiquée.
WriteFloat Permet d'écrire une valeur réelle dans la valeur indiquée.
WriteInteger Permet d'écrire une valeur entière dans la valeur indiquée.
WriteString Permet d'écrire un chaine dans la valeur indiquée.


Lire dans la base de registre

Voici un exemple en Delphi permettant de récupèrer l'url de la page de démarrage du navigateur internet . Cet exemple consiste à lire des informations dans la base de registres. Suivant la version de votre système d'exploitation Windows, le chemin peut être différent.

N'oubliez pas d'ajouter dans la source du programme "Registry" dans la partie "Uses" quand vous utilisez la base de registres que se soit pour lire ou pour écrire.

Uses Registry;

Dans un premier temps, il faut créer un objet "TRegistry". Ensuite, il faut définir la clé principale avec "RootKey". On choisit une clé particulière avec la méthode "OpenKey" puis on rècupère le texte de la valeur "Start Page".

L'exemple utilise un composant TButton et TEdit.

Uses Registry;

procedure TForm1.Button1Click(Sender: TObject);
Var Registre : TRegistry;
begin
//Récupère l'url de la page de démarrage
Registre:=TRegistry.Create; //Crée un objet TRegistry
Registre.RootKey:=HKEY_CURRENT_USER; //Définit la clé principale
Registre.OpenKey('\Software\Microsoft\Internet Explorer\Main',False); {"OpenKey" ouvre une clé particulière (False signifie que la clé n'est pas crée si elle n'existe pas}
Edit1.Text:=Registre.ReadString('Start Page'); //Renvoie un string à partir du nom de la valeur
Registre.CloseKey; //Ferme la clé
Registre.Free; //Détruit l'objet
end;


Le composant Edit1 contient maintenant une adresse url ou "about:blank" pour une page vierge.

Ecrire dans la base de registre

L'écriture dans la base de regsitres se fait sur le même principe que la lecture. On utilise désormais la méthode "WriteString" pour écrire à la place "ReadString" qui sert à lire.
On reprend l'exemple ci-dessus mais cette fois ci on change l'url de la page de démarrage du navigateur internet.

L'exemple utilise un composant TButton et TEdit.

Uses Registry;

procedure TForm1.Button2Click(Sender: TObject);
Var Registre : TRegistry;
begin
//Modifie l'url de la page de démarrage
Registre:=TRegistry.Create; //Crée un objet TRegistry
Registre.RootKey:=HKEY_CURRENT_USER; //Définit la clé principale
Registre.OpenKey('\Software\Microsoft\Internet Explorer\Main',False);
{"OpenKey" ouvre une clé particulière (False signifie que la clé n'est pas crée si elle n'existe pas}
Registre.WriteString('Start Page',Edit1.Text); //Stocke le contenu de Edit1 dans "Start Page"
Registre.CloseKey; //Ferme la clé
Registre.Free; //Détruit l'objet
end;


Tous droits réservés - Contacts
Haut de la page