IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

syntaxe d'ouverture d'une clé registre windows existante


Sujet :

Delphi

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 101
    Points : 64
    Points
    64
    Par défaut syntaxe d'ouverture d'une clé registre windows existante
    Salut chers developpeurs

    Je veux ajouter une valeur dans la base de registre Windows xp, la valeur aura le nom ‘valeur1’ et contenu dans la clé 'run' qui se trouve sur le chemin : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Run

    Pour vérifier l’existence de la clé « run », J’ai essayé la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Var   Reg: TRegistry; 
    .
    .
    .
    reg:=TRegistry.Create;
    Reg.RootKey :=HKEY_LOCAL_MACHINE;
     
    if not Reg.OpenKey('Run', false) then
    begin
    showmessage('la clé n''existe pas') ;
    end
    else
    begin
    showmessage('la clé existe') ;
    end;
    mais run n'été pas reconnu par delphi (message envoyé: "la clé n'existe pas" ), alors qu'elle existe réellement!

    j’ai réessayé la syntaxe qui consiste à donner tout le chemin vers la clé 'run', mais sans parvenir à ouvrir la clé 'run'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    reg:=TRegistry.Create;
    Reg.RootKey :=HKEY_LOCAL_MACHINE;
     
    if not Reg.OpenKey(' HKEY_CURRENT_USER\Software\Microsoft\Windows\Run', false) then
    begin
    showmessage('la clé n''existe pas') ;
    end
    else
    begin
    showmessage('la clé existe') ;
    end;
    merci pour vos aides à venir, bye

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Il faut préciser le chemin complet de la clé, sans de nouveau préciser la 'RootKey' dans ce chemin.

    Donc pour ouvrir ta clé sous HKLM, tu fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      with Reg do
      begin
        try
          RootKey := HKEY_LOCAL_MACHINE;
          if not Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',
            False) then
            ShowMessage('la clé n''existe pas')
          else
          begin
            ShowMessage('la clé existe') ;
            // suite ...
          end;
          CloseKey;
        finally
          Free;
        end;
      end;
    end;
    Nota: il existe la même clé sous HKCU.

    @+ Claudius

  3. #3
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Et pour la lecture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    var
      Registre : TRegistry;
      Val1 : TString;
      Val2 : Integer;
      Val3 := TDate;
    begin
      RootKey := HKEY_LOCAL_MACHINE;
      KeyName := 'Software\Microsoft\Windows\CurrentVersion\Run';
      Registre := TRegistry.Create;  // création du registre
      Registre.RootKey := RootKey; //Définit la clé principale
      Registre.OpenKey (KeyName,False);
      Val1 := Registre.ReadString('Code1'); //   Lecture
      Val2 := Registre.ReadInteger('Code2'); //  et affectation
      Val3 := Registre.ReadDate('Code3'); //     des valeurs
      Registre.CloseKey;
      Registre.Free;
    end;

  4. #4
    Membre du Club
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 101
    Points : 64
    Points
    64
    Par défaut merci
    merci les patrons du delphi
    problème réglé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Incrementation d'une valeur registre windows VBscript
    Par natmab dans le forum VBScript
    Réponses: 2
    Dernier message: 15/05/2012, 10h50
  2. Ouverture d'une page avec window.open
    Par Friksstyle dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 21/05/2010, 16h37
  3. Réponses: 1
    Dernier message: 21/03/2008, 03h21
  4. Problème d'ouverture d'une clé registre
    Par jack_x4 dans le forum C
    Réponses: 4
    Dernier message: 24/07/2007, 10h45
  5. Réponses: 4
    Dernier message: 02/11/2005, 16h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo