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

Visual C++ Discussion :

Comment creer, modifier et supprimer des clés de la base de registre


Sujet :

Visual C++

  1. #1
    Membre actif
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Points : 275
    Points
    275
    Par défaut Comment creer, modifier et supprimer des clés de la base de registre
    Bonjour,

    tout est dans le titre, j'aimerais sauvegarder un chemin de fichier ou d'autre infomrations dans la base de registre cependant je ne sais absolument pas comment faire...
    J'suis loin d'être un expert, seulement un passionné.
    L'humanité de l'homme ne reside que dans son intelligence. Certains l'on compris. D'autres ne le comprendront jamais... (Histrat)

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    En API Win32: Renseigne-toi sur la fonction RegOpenKeyEx() et les fonctions qui vont avec.

    En .Net : Aucune idée.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre actif
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Points : 275
    Points
    275
    Par défaut
    ok merci medinoc, c'est un début de piste.
    J'suis loin d'être un expert, seulement un passionné.
    L'humanité de l'homme ne reside que dans son intelligence. Certains l'on compris. D'autres ne le comprendront jamais... (Histrat)

  4. #4
    Membre actif
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Points : 275
    Points
    275
    Par défaut
    bon alors j'ai avancé mais je rencontre un problémeje retrouve l'exception suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Impossible d'écrire dans la clé du Registre."
    L'exception semble être provoquer par cette ligne de code :

    je vous montre ma méthode :

    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
    24
    25
    private: int ModifReg(String^ Key, String^ Value)
    {
       Microsoft::Win32::RegistryKey^ rk;
       rk  = Microsoft::Win32::Registry::CurrentUser->OpenSubKey("Software", true);
       if (!rk)
       {
          MessageBox::Show("Failed to open CurrentUser/Software key","Information",MessageBoxButtons::OK);
          return -1;
       }
       Microsoft::Win32::RegistryKey^ nk;
       nk = rk->OpenSubKey(SOFTNAME);
       if (nk != nullptr)
       {
          try
          {
             nk->DeleteValue(Key);     //nk->SetValue(Key,Value);
          }
          catch (Exception^ e)
          {
             MessageBox::Show("Modification non enregistrer\nAuthorisation insuffisante","Information",MessageBoxButtons::OK);
             return -1;
          }
       }
       return 0;
    }
    J'suis loin d'être un expert, seulement un passionné.
    L'humanité de l'homme ne reside que dans son intelligence. Certains l'on compris. D'autres ne le comprendront jamais... (Histrat)

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    1. Essaie de trouver le type de l'exception (e->GetType()->FullName ou un truc du genre).
    2. Donc, tu appelles Key le nom de valeur ?
    3. DeleteValue envoie une ArgumentException si la valeur n'est pas trouvée. Lors de la création de la clé, elle ne contient aucune valeur...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre actif
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Points : 275
    Points
    275
    Par défaut
    1/
    Voici le type d'exception :
    "System.UnauthorizedAccessException"
    2/
    key est le nom de ma valeur et value la valeur de celle-ci
    3/
    La création de la clé se passe bien je peux creer la clé sans probléme et y mettre une valeur cependant c'est pour la modifier ou la supprmier que j'ai des problémes, et la msdn ne dit rien la-dessus (du moins j'ai rien trouver)...
    J'suis loin d'être un expert, seulement un passionné.
    L'humanité de l'homme ne reside que dans son intelligence. Certains l'on compris. D'autres ne le comprendront jamais... (Histrat)

  7. #7
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    il est possible que ça soit un probleme de droits d'accés....
    verifie les droits d'acces avec regedt32.

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Citation Envoyé par MSDN : [URL=http://msdn2.microsoft.com/en-us/library/microsoft.win32.registrykey.opensubkey.aspx]RegistryKey.OpenSubKey Method[/URL]
    RegistryKey.OpenSubKey (String) : Retrieves a subkey as read-only.
    Et pour les noms: Normalement, la convention, c'est "valeur" pour le nom de valeur et "données" pour son contenu...
    Le nom "clé" étant à réserver, ben... aux clés.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre actif
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Points : 275
    Points
    275
    Par défaut
    J'avais déjà penser à ça mais à premiére vue, j'utilise une session avec les droits administrateur, il n'y a qu'un seul utilisateur qui n'a pas les droits pour éffectuer les modifications sur le registre (sur 4). Il s'agit de "restricted"

    Y a t'il un moyen de contrer ça?
    J'suis loin d'être un expert, seulement un passionné.
    L'humanité de l'homme ne reside que dans son intelligence. Certains l'on compris. D'autres ne le comprendront jamais... (Histrat)

  10. #10
    Membre actif
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Points : 275
    Points
    275
    Par défaut
    et surtout comment savoir quel nom d'utilisateur utilise le programme?
    J'suis loin d'être un expert, seulement un passionné.
    L'humanité de l'homme ne reside que dans son intelligence. Certains l'on compris. D'autres ne le comprendront jamais... (Histrat)

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Si ton user a déjà accès à la clé, ce n'est pas changer d'user qui résoudra le problème.
    Mais si tu regardes le lien, tu verras plein d'overloads pour la fonction OpenSubKey(), et tous permettent de l'ouvrir en read/write...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Membre actif
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Points : 275
    Points
    275
    Par défaut
    c bon medinoc tu avais encore raison... :

    Il fallait simplement que je precise a l'ouverture de ma clé que je voulais la modifier.

    Merci
    J'suis loin d'être un expert, seulement un passionné.
    L'humanité de l'homme ne reside que dans son intelligence. Certains l'on compris. D'autres ne le comprendront jamais... (Histrat)

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

Discussions similaires

  1. [MySQL] Modifier et supprimer des données dans une base
    Par amandev dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/03/2012, 15h33
  2. Réponses: 2
    Dernier message: 25/08/2008, 10h41
  3. récupération des clés de la base de registre
    Par panganino dans le forum Windows Vista
    Réponses: 4
    Dernier message: 04/01/2008, 09h24
  4. Réponses: 1
    Dernier message: 30/05/2007, 15h51
  5. Réponses: 3
    Dernier message: 01/12/2006, 20h31

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