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...
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)
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.
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)
bon alors j'ai avancé mais je rencontre un problémeje retrouve l'exception suivante :
L'exception semble être provoquer par cette ligne de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part "Impossible d'écrire dans la clé du Registre."
je vous montre ma méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part nk->DeleteValue(Key);
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)
- Essaie de trouver le type de l'exception (e->GetType()->FullName ou un truc du genre).
- Donc, tu appelles Key le nom de valeur ?
- 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.
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)
salut,
il est possible que ça soit un probleme de droits d'accés....
verifie les droits d'acces avec regedt32.
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Et pour les noms: Normalement, la convention, c'est "valeur" pour le nom de valeur et "données" pour son contenu...Envoyé par MSDN : [URL=http://msdn2.microsoft.com/en-us/library/microsoft.win32.registrykey.opensubkey.aspx]RegistryKey.OpenSubKey Method[/URL]
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.
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)
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)
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.
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)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager