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 :

Lire dans la base de registre


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Points : 58
    Points
    58
    Par défaut Lire dans la base de registre
    Bonjour,

    J'aimerais lire une information dans la base de registre, j'ai lu ceci dans la faq :

    Pour la lecture :

    maChaine = registre->ReadString("nom_de_la_valeur");
    mais je ne comprend pas comment aller plus loin. Ce que je veux lire se trouve dans HKEY_CURRENT_USER->Software->Microsoft->Windows Media->WMSDK->General et là j'ai une valeur qui s'appelle computername et j'aimerais lire ce qui s'y trouve à l'intérieur.

    Quelqu'un sait comment y parvenir ? J'ai déjà ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       TRegistry *registre = new TRegistry();
       registre->RootKey = HKEY_CURRENT_USER;

  2. #2
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Regarde bien la FAQ il y a des exemples:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    registre->OpenKeyReadOnly("Software\\Borland\\C++Builder\\6.0"); // clé courante
    Dans ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    registre->OpenKeyReadOnly("Software\\Microsoft\\Windows Media\\WMSDK\\General");
    http://c.developpez.com/faq/bcb/?page=systemeregistre

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut El-Diablo-:
    Un bout de code fonctionnel ecrit avec l'aide de la FAQ, qui ouvre une boite de dialogue a l'ouverture de Windows juste avant l'ecran de bienvenue.
    Le .cpp
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include <Registry.hpp>
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    // ce programme fonctionne sur XP pro Pack1, a verifier que ces clefs existent bien au meme
    // emplacement sur un autre systeme d'exploitation, vous modifiez la base
    // de registre a vos risques et perils
    {
    // on lit la valeur des clefs
    TRegistry *registre = new TRegistry();
    registre->RootKey = HKEY_LOCAL_MACHINE;
    registre->OpenKey("<a href="file://\\SOFTWARE\\Microsoft\\Windows" target="_blank">\\SOFTWARE\\Microsoft\\Windows</a> NT\\CurrentVersion\\Winlogon", true);
    // on lit la valeur de la premiere clef
    if (registre->KeyExists("LegalNoticeCaption"));
    {
    if (registre->ValueExists("LegalNoticeCaption"));
    {
    Edit1->Text = registre->ReadString("LegalNoticeCaption");
    }
    }
    // on lit la valeur de la deuxieme clef
    if (registre->KeyExists("LegalNoticeText"));
    {
    if (registre->ValueExists("LegalNoticeText"));
    {
    Memo1->Text = registre->ReadString("LegalNoticeText");
    }
    }
    delete registre;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    // on efface la valeur des clefs
    TRegistry *registre = new TRegistry();
    registre->RootKey = HKEY_LOCAL_MACHINE;
    registre->OpenKey("<a href="file://\\SOFTWARE\\Microsoft\\Windows" target="_blank">\\SOFTWARE\\Microsoft\\Windows</a> NT\\CurrentVersion\\Winlogon", true);
    // on efface la valeur de la premiere clef
    if (registre->KeyExists("LegalNoticeCaption"));
    {
    if (registre->ValueExists("LegalNoticeCaption"));
    {
    registre->WriteString("LegalNoticeCaption", "");
    }
    }
    // on efface la valeur de la deuxieme clef
    if (registre->KeyExists("LegalNoticeText"));
    {
    if (registre->ValueExists("LegalNoticeText"));
    {
    registre->WriteString("LegalNoticeText", "");
    }
    }
    delete registre;
    // on efface le TEdit et le TMemo
    Edit1->Text = "";
    Memo1->Text = "";
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    // on ecrit la valeur des clefs
    TRegistry *registre = new TRegistry();
    registre->RootKey = HKEY_LOCAL_MACHINE;
    registre->OpenKey("<a href="file://\\SOFTWARE\\Microsoft\\Windows" target="_blank">\\SOFTWARE\\Microsoft\\Windows</a> NT\\CurrentVersion\\Winlogon", true);
    // on ecrit la valeur de la premiere clef
    if (registre->KeyExists("LegalNoticeCaption"));
    {
    if (registre->ValueExists("LegalNoticeCaption"));
    {
    registre->WriteString("LegalNoticeCaption", Edit1->Text);
    }
    }
    // on ecrit la valeur de la deuxieme clef
    if (registre->KeyExists("LegalNoticeText"));
    {
    if (registre->ValueExists("LegalNoticeText"));
    {
    registre->WriteString("LegalNoticeText", Memo1->Text);
    }
    }
    delete registre;
    // on efface le TEdit et le TMemo
    Edit1->Text = "";
    Memo1->Text = "";
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    // on quitte le programme
    Form1->Close();
    Application->Terminate();
    }
    //---------------------------------------------------------------------------
    Le .h
    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
    26
    27
    28
    29
    30
    31
     
    //---------------------------------------------------------------------------
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published: // IDE-managed Components
            TButton *Button1;
            TButton *Button2;
            TButton *Button3;
            TButton *Button4;
            TEdit *Edit1;
            TMemo *Memo1;
            void __fastcall Button1Click(TObject *Sender);
            void __fastcall Button2Click(TObject *Sender);
            void __fastcall Button3Click(TObject *Sender);
            void __fastcall Button4Click(TObject *Sender);
    private: // User declarations
    public:  // User declarations
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    Tu a les exemple pour lire, ecrire, supprimer dans la base de registre
    Bien sur c'est une base de depart

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Points : 58
    Points
    58
    Par défaut
    Merci beaucoup de vos réponses... Maintenant j'ai une autre question, est-ce possible de lire la base de registre d'un autre ordinateur du même domaine ?

    Merci d'avance !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Points : 58
    Points
    58
    Par défaut
    J'ai lu dans la FAQ que c'est possible, par contre, est-ce possible de se connecter à la base de registre d'un ordinateur distant sachant son adresse ip ou son adresse MAC ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Points : 58
    Points
    58
    Par défaut
    Si ce n'est pas possible par la base de registre, quelqu'un sait comment obtenir le nom d'un ordinateur du même domaine ?

Discussions similaires

  1. lire dans la base de registre
    Par Speed41 dans le forum Langage
    Réponses: 10
    Dernier message: 18/02/2014, 18h00
  2. Explication pour lire dans la base de registre
    Par davidc dans le forum Débuter
    Réponses: 7
    Dernier message: 09/03/2008, 15h26
  3. Réponses: 10
    Dernier message: 02/11/2006, 20h52
  4. [vb] Lire dans la base de registre
    Par ptitnico22 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 20/06/2006, 13h56
  5. Lire une donnée dans la base de registre
    Par K.othmane dans le forum Langage
    Réponses: 1
    Dernier message: 06/01/2006, 11h32

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