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

C++Builder Discussion :

Base de registre


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 31
    Par défaut Base de registre
    bonjour à tous,

    Je vous explique mon problème.

    Je voudrai créer un programme qui va stocker des donnée dans la base de registre. Avant de l'intégrer dans mon projet (pour être sur de pas faire de betise) je crée une application de test, mais ca ne fonctionne pas, pourtant j'ai lu des explication sur l'utilisation de TRegistry mais ca ne fonctionne pas.

    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
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     TRegistry *registre = new TRegistry();
     
     registre->RootKey = HKEY_LOCAL_MACHINE;
     if (registre->KeyExists("\\Software\\LocaTout"))
     {
      Label1->Caption = registre->ReadString("MysqlServ");
      Label2->Caption = registre->ReadString("MysqlLogin");
      Label3->Caption = registre->ReadString("MysqlPass");
     }
     else
     {
      registre->CreateKey("\\Software\\LocaTout");
      registre->WriteString("MysqlServ","localhost");
      registre->WriteString("MysqlLogin","root");
      registre->WriteString("MysqlPass","motdepasse");
     }
     
     delete registre;
    }
    dans cette aplication bidon, si l'on clique sur le bouton le programme vas créer la clé dans la base de registre et y stocker des valeur ET si la clé existe, il vas lire les valeur et les afficher dans un lable.

    A la compilation il n'y a pas d'erreur mais à l'éxécution il met met une erreur sur la ligne "registre->WriteString("MysqlServ","localhost");" cette erreur est : "Le projet Projet1.exe a provoqué une classe d'exception ERegistryException avec le message 'Echec à la définition des données pour 'MysqlServ''.".

    Est ce que quelqu'un pourai m'aider s'il vous plait.


    Merci

  2. #2
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    A mon avis (pas testé), cela vient du fait que tu as oublié de faire un OpenKey avant tes lectures/écritures...

  3. #3
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Citation Envoyé par bakaneko
    A mon avis (pas testé), cela vient du fait que tu as oublié de faire un OpenKey avant tes lectures/écritures...
    et +1.

  4. #4
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 31
    Par défaut
    vous aviez raison maintenant que je fait un OpenKey cela fonctionne.

    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
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     TRegistry *registre = new TRegistry();
     
     registre->RootKey = HKEY_LOCAL_MACHINE;
     if (registre->KeyExists("\\Software\\LocaTout"))
     {
      registre->OpenKey("\\Software\\LocaTout",false);
      Label1->Caption = registre->ReadString("MysqlServ");
      Label2->Caption = registre->ReadString("MysqlLogin");
      Label3->Caption = registre->ReadString("MysqlPass");
     }
     else
     {
      registre->CreateKey("\\Software\\LocaTout");
      registre->OpenKey("\\Software\\LocaTout",false);
      registre->WriteString("MysqlServ","localhost");
      registre->WriteString("MysqlLogin","root");
      registre->WriteString("MysqlPass","motdepasse");
     }
     
     delete registre;
    }
    J'ai mis le code comme ca si quelqu'un veux un exemple il peut en voire un.

    Merci pour votre aide

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

Discussions similaires

  1. Recherche en base de registre
    Par Pomalaix dans le forum Langage
    Réponses: 7
    Dernier message: 01/08/2012, 10h58
  2. [Windows]accès base de registre windows
    Par Greg01 dans le forum API standards et tierces
    Réponses: 27
    Dernier message: 05/06/2007, 15h14
  3. Accès à la base de registre windows à distance
    Par xavame dans le forum Sécurité
    Réponses: 4
    Dernier message: 13/07/2005, 15h23
  4. base de registre et connexion a internet
    Par nonosoft dans le forum C++
    Réponses: 2
    Dernier message: 17/04/2003, 21h04
  5. Utilisez vous la base de registres ?
    Par gRRosminet dans le forum C++Builder
    Réponses: 8
    Dernier message: 04/06/2002, 13h55

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