Base des registres (lire, ecrire supprimer, modifier) 1.0

0/5 (2 avis)

Snippet vu 21 152 fois - Téléchargée 30 fois

Contenu du snippet

Ce module permet:
- Ecrire, Lire, Supprimer une valeur
- Supprimer une clé

Ne pas oublier kil faut redémarrer après la plupart des modifications dans la Base des Registres!!!!!!!!!!!!!!

Source / Exemple :


// Ex:
//Ecrire une valeur permettant d'accélérer la navigation dans menu démarrer

      clePrincipale := 'HKEY_CURRENT_USER';
      cheminCle     := 'Control Panel\Desktop';
      nomValeur     := 'MenuShowDelay';
      contenuValeur := '0';

      res := RegistreEcritValeur(clePrincipale, cheminCle, nomValeur, contenuValeur);

      if res = false
      then
        begin
          showmessage('Impossible de Modifier la Base des Registres');
          exit;
        end;
    end;

//*******************************************************************
//                                            UNITE REGISTRE
//*******************************************************************

unit UtilsRegistre;

interface

uses
 windows,classes,Sysutils, Forms, Dialogs, Registry ;

function TrouveClePrincipaleInt (ClePrincipale:String) : Cardinal;
function RegistreEcritValeur    (ClePrincipale:String; CheminCle:String; NomValeur:String; ContenuValeur:String) : Boolean;
function RegistreLireValeur     (ClePrincipale:String; CheminCle:String; NomValeur:String) :String;
function RegistreSupprimeValeur (ClePrincipale:String; CheminCle:String; NomValeur:String) : Boolean;
function RegistreModifieValeur  (ClePrincipale:String; CheminCle:String; NomValeur:String; NouvNomValeur:String) : Boolean;
function RegistreSupprimeCle    (ClePrincipale:String; CheminCle:String) : Boolean;

implementation

//*************************************************************
// Transforme la string Correspondant à la Clé principale en Entier non Signé
//*************************************************************
function TrouveClePrincipaleInt (ClePrincipale:String) : Cardinal;
var
 cle : Cardinal;
begin
  if ClePrincipale = 'HKEY_CLASSES_ROOT'
  then cle := HKEY_CLASSES_ROOT
    else
  if ClePrincipale = 'HKEY_CURRENT_USER'
  then cle := HKEY_CURRENT_USER
    else
  if ClePrincipale = 'HKEY_LOCAL_MACHINE'
  then cle := HKEY_LOCAL_MACHINE
    else
  if ClePrincipale = 'HKEY_USERS'
  then cle := HKEY_USERS
    else
  if ClePrincipale = 'HKEY_PERFORMANCE_DATA'
  then cle := HKEY_PERFORMANCE_DATA
    else
  if ClePrincipale = 'HKEY_DYN_DATA'
  then cle := HKEY_DYN_DATA
    else cle := 0;

  result := cle;

end;

//*************************************************************
//     Ecrire une Valeur Chaine dans la Base des Registres
//*************************************************************
function RegistreEcritValeur(ClePrincipale:String; CheminCle:String; NomValeur:String; ContenuValeur:String) : Boolean;
var
  Reg : TRegistry;
  res : boolean;
  cle : Cardinal;
begin

  try
    res := false;

    Reg := TRegistry.Create;
    Reg.RootKey := TrouveClePrincipaleInt(ClePrincipale);
    if Reg.OpenKey('\' + cheminCle, False)
    then
      begin
        Reg.WriteString(NomValeur, ContenuValeur);
        res := true;
      end;
  finally
    Reg.CloseKey;
    Reg.Free;
    //inherited;
  end;

  result:=res;

end;

//*************************************************************
//      Lire une Valeur Chaine dans la Base des Registres
//*************************************************************
function RegistreLireValeur(ClePrincipale:String; CheminCle:String; NomValeur:String) :String;
var
  Reg : TRegistry;
  res : string;
  cle : Cardinal;
begin

  try
    Reg := TRegistry.Create;
    Reg.RootKey := TrouveClePrincipaleInt(ClePrincipale);
    if Reg.OpenKey('\' + cheminCle, False)
    then res := Reg.ReadString(NomValeur)
    else res := '';
  finally
    Reg.CloseKey;
    Reg.Free;
  end;

  result := res;

end;

//*************************************************************
//    Supprime une Valeur Chaine dans la Base des Registres
//*************************************************************
function RegistreSupprimeValeur (ClePrincipale:String; CheminCle:String; NomValeur:String) : Boolean;
var
  Reg : TRegistry;
  res : Boolean;
  cle : Cardinal;
begin

  try
    res := false;
    Reg := TRegistry.Create;
    Reg.RootKey := TrouveClePrincipaleInt(ClePrincipale);
    if Reg.OpenKey('\' + cheminCle, False)
    then res := Reg.DeleteValue(NomValeur);
  finally
    Reg.CloseKey;
    Reg.Free;
  end;

  result := res;

end;

//*************************************************************
//    Modifie une Valeur Chaine dans la Base des Registres
//*************************************************************
function RegistreModifieValeur (ClePrincipale:String; CheminCle:String; NomValeur:String; NouvNomValeur:String) : Boolean;
var
  Reg         : TRegistry;
  RecupValeur : String;
  res         : Boolean;
  cle         : Cardinal;
begin

  try
    res := false;

    Reg := TRegistry.Create;
    Reg.RootKey := TrouveClePrincipaleInt(ClePrincipale);
    if Reg.OpenKey('\' + cheminCle, False)
    then
      begin
        RecupValeur := Reg.ReadString(NomValeur);    // Recupere le Contenu de la valeur
        res := Reg.DeleteValue(NomValeur);           // Supprime la valeur
        Reg.WriteString(NouvNomValeur, RecupValeur); // j'écris la valeur avec le meme contenu mais avec le nouveau nom
        res := true;
      end
    else RecupValeur := '';
  finally
    Reg.CloseKey;
    Reg.Free;
  end;

  result := res;

end;

//*************************************************************
//        Supprime une Clé dans la Base des Registres
//*************************************************************
function RegistreSupprimeCle (ClePrincipale:String; CheminCle:String) : Boolean;
var
  Reg : TRegistry;
  res : Boolean;
  cle : Cardinal;
begin

  try
    res := false;

    Reg := TRegistry.Create;
    Reg.RootKey := TrouveClePrincipaleInt(ClePrincipale);
    if Reg.OpenKey('\' + cheminCle, False)
    then res := Reg.DeleteKey(cheminCle);
  finally
    Reg.CloseKey;
    Reg.Free;
  end;

  result := res;

end;

end.

//***********************************************************************

Conclusion :


Toutes Fonctions que je propose a été créé et donc testé par moi-même alors si problème il y a ne pas hésiter à m'écrire. :)

A voir également

Ajouter un commentaire Commentaires
cs_haklia Messages postés 41 Date d'inscription mardi 24 juin 2003 Statut Membre Dernière intervention 30 avril 2006
22 mars 2004 à 12:03
c bien sympa ce code, je v l'utiliser mais g une question : a quoi sert la fonction 'TrouveClePrincipaleInt' ??? (a Transformer la string Correspondant à la Clé principale en Entier non Signé.....oui mais ca sert a quoi ca ???...LOL)
cs_djamel001 Messages postés 20 Date d'inscription lundi 21 janvier 2002 Statut Membre Dernière intervention 10 avril 2003
12 févr. 2002 à 09:03
on peut pas avoir un zip stp ???

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.