Problème base de registre

zounar_j5 Messages postés 3 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 19 avril 2024 - 25 nov. 2022 à 21:40

Bonjour à tous

J’ai trouvé ces routines qui fonctionnent à merveille, mais ce n’est pas tout à fait ce que je cherche :

Pour lire : Cette procédure serait à modifier

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;

Pour écrire : Cette procédure me convient juste

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;

Cela fonctionne bien, mais ce que je voudrais, c’est que dès que lance mon programme, on va vérifier si la clé existe.

Oui, on récupère la valeur

Non, on nous dirige vers la routine écrire.

Donc, ce que je cherche, de ne pas passer par TForm1.Button1Click(Sender: TObject);

J’ai vu qu’on peut utiliser KeyExists, mais je ne trouve pas la solution.

Merci pour votre aide.


Rejoignez-nous