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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 19 475 fois - Téléchargée 28 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_djamel001
Messages postés
20
Date d'inscription
lundi 21 janvier 2002
Statut
Membre
Dernière intervention
10 avril 2003
-
on peut pas avoir un zip stp ???
cs_haklia
Messages postés
52
Date d'inscription
mardi 24 juin 2003
Statut
Membre
Dernière intervention
30 avril 2006
-
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)

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.