begin process at 2012 02 11 16:31:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Fichier & Disque

 > 

recherche dans le registre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

recherche dans le registre

mercredi 14 juillet 2010 à 12:29:08 | recherche dans le registre

casper150

bonjour,

je cherche le moyen de récupère une string dans le registre
mais sans connaitre la clé
je vous montre en code

Code Delphi :
Var Registre : TRegistry;
Var Test :  TStringList;
begin

test  := TStringList.Create;

//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.OpenKeyReadOnly('\Software\MONAPP\client') ;// recupere les clé dans 'CLIENT'
Registre.Getkeynames(Test);


voilà la c'est facile je récupère les clés
mais je sais que dans chaque clé il y a la clé 'settings' qui contient mon string qui est 'TestString'

comment faire pour la récupéré ?
mercredi 14 juillet 2010 à 13:20:48 | Re : recherche dans le registre

cirec

Membre Club Administrateur CodeS-SourceS
Salut,

Code Delphi :

procedure TForm1.Button1Click(Sender: TObject);
const
 
KeyName : string '\Software\MONAPP\client\';
var Test :  TStringList;
    I: Integer;
begin
  with 
TRegistry.Create do
  try
    
RootKey := HKEY_CURRENT_USER; //Définit la clé principale
    if OpenKeyReadOnly(KeyName) then // recupere les clé dans 'CLIENT'
    begin
      
Test := TStringList.Create;
      try
        
Getkeynames(Test);
        CloseKey;
        for I := 0 to Test.Count-1 do
          if 
OpenKeyReadOnly(KeyName + Test[I]) then
          begin
            
Memo1.Lines.Add(ReadString('settings'));
            CloseKey;
          end;
      finally
        
Test.Free;
      end;
    end;
  finally
    
Free;
  end;
end;





@+Cirec
mercredi 14 juillet 2010 à 14:46:29 | Re : recherche dans le registre

casper150

Re,

Merci de ton aide

alors aparament sa fonctionne
mais il ne récupère que le dernier

j'ai du améliorer
je te montre

Code Delphi :
const
 KeyName : string = '\Software\MONAPP\client\';
var Test :  TStringList;
    I: Integer;
begin
  with TRegistry.Create do
  try
    RootKey := HKEY_CURRENT_USER; //Définit la clé principale
    if OpenKeyReadOnly(KeyName) then // recupere les clé dans 'CLIENT'
    begin
      Test := TStringList.Create;
      try
        Getkeynames(Test);
        RegN.clear;
        RegN.Lines.Add(test.text) ;
        CloseKey;
        for I := 0 to Test.Count-1 do
          if OpenKeyReadOnly(KeyName + Test[I]+'\Settings') then
          begin
            RegP.Clear;
            RegP.Lines.Add(ReadString('TestString'));
            CloseKey;
          end;
      finally
        Test.Free;
      end;
    end;
  finally
    Free;
  end;
end;


voila la il ne me donne que la dernière clé....
mercredi 14 juillet 2010 à 16:03:06 | Re : recherche dans le registre

cirec

Membre Club Administrateur CodeS-SourceS
j'ai fait le code pour un type précis d'arborescence .. j'ai du mal comprendre ta structure :
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\MonApp]

[HKEY_CURRENT_USER\Software\MonApp\Client]

[HKEY_CURRENT_USER\Software\MonApp\Client\Client_1]
"settings"="TestString_1"

[HKEY_CURRENT_USER\Software\MonApp\Client\Client_2]
"settings"="TestString_2"

[HKEY_CURRENT_USER\Software\MonApp\Client\Client_3]
"settings"="TestString_3"


montre moi exactement comment sont tes données fais un export de la clé "MonApp" et cole le résultat ici


@+Cirec
mercredi 14 juillet 2010 à 17:28:37 | Re : recherche dans le registre

casper150

re,

Dans client_1,2,3 etc. il y a encore une clé qui se nomme settings.

Et dans settings je lis le string teststring.

En gros voilà le schéma


[HKEY_CURRENT_USER\Software\MonApp]

[HKEY_CURRENT_USER\Software\MonApp\Client]

[HKEY_CURRENT_USER\Software\MonApp\Client\???]

[HKEY_CURRENT_USER\Software\MonApp\Client\???\settings]

les ??? a chercher et en suite lire le string TESTstring qu'il y a dans settings
mercredi 14 juillet 2010 à 17:59:19 | Re : recherche dans le registre

cirec

Membre Club Administrateur CodeS-SourceS
selon ton schéma:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\MonApp]

[HKEY_CURRENT_USER\Software\MonApp\Client]

[HKEY_CURRENT_USER\Software\MonApp\Client\Client_1]

[HKEY_CURRENT_USER\Software\MonApp\Client\Client_1\settings]
"TestString"="TestString_1"

[HKEY_CURRENT_USER\Software\MonApp\Client\Client_2]

[HKEY_CURRENT_USER\Software\MonApp\Client\Client_2\settings]
"TestString"="TestString_2"

[HKEY_CURRENT_USER\Software\MonApp\Client\Client_3]

[HKEY_CURRENT_USER\Software\MonApp\Client\Client_3\settings]
"TestString"="TestString_3"




Code Delphi :

procedure TForm1.Button1Click(Sender: TObject);
const
 
KeyName : string '\Software\MONAPP\client\';
var Test :  TStringList;
    I: Integer;
begin
  with 
TRegistry.Create do
  try
    
RootKey := HKEY_CURRENT_USER; //Définit la clé principale
    if OpenKeyReadOnly(KeyName) then // recupere les clé dans 'CLIENT'
    begin
      
Test := TStringList.Create;
      try
        
Getkeynames(Test);
        CloseKey;
        for I := 0 to Test.Count-1 do
          if 
OpenKeyReadOnly(KeyName + Test[I] + '\settings'then
          begin
            
Memo1.Lines.Add(ReadString('TestString'));
            CloseKey;
          end;
      finally
        
Test.Free;
      end;
    end;
  finally
    
Free;
  end;
end;

tout simplement ...
il y avait juste à ajouter "\settings"



@+Cirec
mercredi 14 juillet 2010 à 19:30:27 | Re : recherche dans le registre

cirec

Membre Club Administrateur CodeS-SourceS
je viens de saisir ton problème !!

en fait tu avais bien modifié le code pour tes besoins ... t'as juste fait une erreur :
Code Delphi :
          begin
            RegP.Clear;
            RegP.Lines.Add(ReadString('TestString'));
            CloseKey;
          end;

à remplacer par:
Code Delphi :
          begin
            //RegP.Clear; <-- ici tu éffaçais toute la liste du coup il ne restait que le dernier !!
            RegP.Lines.Add(ReadString('TestString'));
            CloseKey;
          end;




@+Cirec
mercredi 14 juillet 2010 à 21:36:29 | Re : recherche dans le registre

casper150

Re,

Oui j'ai vu l'erreur merci beaucoup pour ton aide vive delphiFR


Cette discussion est classée dans : code, test, registre, clé, tregistry


Répondre à ce message

Sujets en rapport avec ce message

Extraction de clé de registre. [ par ARothstein1 ] Bonsoir,Je suis sur un projet, qui extrait certaines clés de registre, pour les déposer dans un .bat, ou .txt.Par exemple :[code]Registre.RootKey:=HKE Mes Documents [ par ni69 ] Bonjour,Je voudrais changer par un programme l'emplacement du dossier "Mes documents", comme cela est possible en faisant dessus un clic droit, puis " Ecrire/modifier la valeur '(défaut)' d'une clé de registre [ par mikesvl ] Pour ce qui est de la lecture et de l'écriture de clés et/ou de valeurs dans le registre : pas de problème. Mais en ce qui concerne la valeur '(défaut clé registre [ par mathieu57100 ] Bonjour dans la ptite appli que je développe, je veut écrire dan la base de registre...Donc, je crée bien ma variable 'Registre'de type Tregistry, je Clé de registre en invité [ par craftsystem ] Salut a tous je viens de faire un programme qui bloque l'ordi a une heure précise(demande de Parent d'élèves à l'école de mon fils)mais voilà petit so Clé Composée !! [ par tmsarts ] Salut à tousJe travail sur un projet de Budget, et je veut facilité la saisi du code d'opération.Sachant que j'ai :- Une base de donnée "Secteur" avec EAccessViolation [ par Leucistic ] Bonjour, Je m'excuse d'avance de cette question sûrement très bête mais je bloque dessus depuis 2 jours. Après avoir regardé plusieurs post sur ce f Registre : récupère l'ensemble des clés d'une clé [ par Bruto ] Dans mon programme, l'utilisateur choisit un mot par exemple aléatoire et je crée une clé portant le même nom dans un clé spécifique.Il y a donc possi Recherche dans la base de registre [ par Mimlyne ] Bonjour,J'essaye de savoir comment on recherche à l'aide de delphi, une clé bien spécifique dans une base de registre à un endroit que l'on ne connait controle et génération d'une clé RIB [ par bouziri ] Bonjour,J'ai besoin d'un algorihme pour controler et générer une clé rib à partir des 3 paramètres suivants:- code banque- code guichet- numéro de com


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales