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. :)
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.