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 :

Probleme avec SaveKey


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 59
    Par défaut Probleme avec SaveKey
    Bonjour,

    Je voudrais sauvegarder automatiquement mes clefs de registre a la fin de mon application.
    J'utilise SaveKey de TRegistry et ca ne marche pas.

    EXEMPLE :
    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
     TRegistry * Key=new TRegistry();
     
    // On supprime le fichier existant
    if (FileExists("Test"))
    {
    FileSetAttr("Test",0);
    DeleteFile("Test");
    }
     
    String sFileName = "test";
    String sRegString = "\\Software\\SoftBorne";
    bool Reponse;
     
    Key->Access=KEY_ALL_ACCESS;
    Key->RootKey=HKEY_CURRENT_USER;
    Reponse=Key->SaveKey(sRegString, sFileName);
     
    delete Key;

    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    dans ton code supprime le double backslash avant software, d'autre part dans ton code tu ne vérifie pas si le fichier a bien été supprimé
    cordialement

    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
     
    FileSetAttr("Test",0);
    DeleteFile("Test");
    }
    String sFileName = "test";
    String sRegString = "Software\\SoftBorne";
    bool Reponse;
     
    if(!FileExists("Test"))
    {
    //Key->Access=KEY_ALL_ACCESS;  // inutile
      Key->RootKey=HKEY_CURRENT_USER;
      Reponse=Key->SaveKey(sRegString, sFileName);
     if(!Response)
          MessageBox(...
    }
    else
      MessageBox(...
     
    delete Key;
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 59
    Par défaut
    Je viens de faire le test, mais ca ne mache toujours pas.
    Le fichier est cree sans infos dedans.

    Merci d'avance

  4. #4
    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
    Par défaut
    Salut tryonyco:
    Un lien sur le Forum qui peut etre t'aidera

  5. #5
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    bonjour c'est un problème de privilège du process appellant
    il faut le modifier pour pouvoir utiliser cette fonction
    ci-dessous un exemple
    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
     
     TOKEN_PRIVILEGES tp;
       HANDLE hToken;
       LUID luid;
       HKEY phkResult;
       bool IsOk=true;
       if(OpenProcessToken(GetCurrentProcess(),
                            TOKEN_ADJUST_PRIVILEGES,
                            &hToken ))
        {
     
            if(LookupPrivilegeValue(NULL, SE_BACKUP_NAME, &luid))
            {
               tp.PrivilegeCount           = 1;
               tp.Privileges[0].Luid       = luid;
               tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
               AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES),
                                    NULL, NULL );
             }
         TRegistry* mReg = new  TRegistry();
        IsOk=mReg->SaveKey("Software\\Borland\\C++Builder","C:\\BCB");
        delete mReg;
       }
    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

Discussions similaires

  1. Probleme avec SaveKey
    Par tryonyco dans le forum C++
    Réponses: 1
    Dernier message: 14/09/2007, 13h07
  2. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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