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

Windows Forms Discussion :

Rien ne s'enregistre dans le registre


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut Rien ne s'enregistre dans le registre
    Bonjour,

    voici mon code
    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
    /*
                     * Enregistre dans le registre
                     */
                    RegistryKey rk;
                    rk = Registry.CurrentUser;
     
                    rk.CreateSubKey(CHEMIN_REGISTRE + @"\print");
     
                    if (rk.OpenSubKey(CHEMIN_REGISTRE + @"\print", true) != null)
                    {
                        rk.SetValue("Header", PrintHeader, RegistryValueKind.String);
                        rk.SetValue("Footer", PrintFooter, RegistryValueKind.String);
     
                        rk.SetValue("Left", PrintMarginLeft, RegistryValueKind.DWord);
                        rk.SetValue("Right", PrintMarginRight, RegistryValueKind.DWord);
                        rk.SetValue("Top", PrintMarginTop, RegistryValueKind.DWord);
                        rk.SetValue("Bottom", PrintMarginBottom, RegistryValueKind.DWord);
     
                        rk.SetValue("ShowLineNumber", PrintShowNumLine, RegistryValueKind.DWord);
                        rk.SetValue("ShowPageNumber", PrintShowPageNumber, RegistryValueKind.DWord);
     
                        rk.Close();
                    }
    Il m'a l'air bon. Il créer bien la clef, il passe bien sur les SetValue mais dans le registre rien ?!?

    Je tourne en rond. Quelqu'un a-t-il une idée ?

    Je viens d'essayer le code ci-dessous ça fonction pourquoi ? Quelles différences ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
                    rk = Registry.CurrentUser.CreateSubKey(CHEMIN_REGISTRE + @"\print");
     
                    rk.SetValue("Header", PrintHeader, RegistryValueKind.String);
                    rk.SetValue("Footer", PrintFooter, RegistryValueKind.String);
     
                    rk.SetValue("Left", PrintMarginLeft, RegistryValueKind.DWord);
                    rk.SetValue("Right", PrintMarginRight, RegistryValueKind.DWord);
                    rk.SetValue("Top", PrintMarginTop, RegistryValueKind.DWord);
                    rk.SetValue("Bottom", PrintMarginBottom, RegistryValueKind.DWord);
     
                    rk.SetValue("ShowLineNumber", PrintShowNumLine, RegistryValueKind.DWord);
                    rk.SetValue("ShowPageNumber", PrintShowPageNumber, RegistryValueKind.DWord);
     
                    rk.Close();
    Merci

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Je pense que c'est une histoire avec des conflits d'accès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    rk.CreateSubKey(CHEMIN_REGISTRE + @"\print");
     
                    if (rk.OpenSubKey(CHEMIN_REGISTRE + @"\print", true) != null)
    Avec ce code tu ouvres deux fois la même clef car CreateSubKey l'ouvre, et tu ne l'utilise pas donc elle reste ouverte et tu réouvres une seconde fois la même clef avec OpenSubKey et il doit donc se perdre avec 2 objets ouverts en même temps vers la même clef.
    Je suppose que ce code ci fonctionnerai lui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    rk.CreateSubKey(CHEMIN_REGISTRE + @"\print").Close();
     
                    if (rk.OpenSubKey(CHEMIN_REGISTRE + @"\print", true) != null)

  3. #3
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Y'a pas des flush a faire aussi pour valider l'ecriture ?

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Flush est appellé automatiquement par Close.

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

Discussions similaires

  1. Enregistrer date d'installation dans le registre
    Par PerpetualSnow dans le forum Visual Studio
    Réponses: 0
    Dernier message: 30/10/2009, 09h15
  2. Insertion enregistrement dans table
    Par naidinp dans le forum ASP
    Réponses: 13
    Dernier message: 11/09/2003, 09h56
  3. [VB6] Supprimer un enregistrement dans une ListView ??
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/11/2002, 09h37
  4. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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