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...
Version imprimable
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...
En API Win32: Renseigne-toi sur la fonction RegOpenKeyEx() et les fonctions qui vont avec.
En .Net : Aucune idée.
ok merci medinoc, c'est un début de piste.
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:"Impossible d'écrire dans la clé du Registre."
je vous montre ma méthode :Code:nk->DeleteValue(Key);
Code:
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; }
- Essaie de trouver le type de l'exception (e->GetType()->FullName ou un truc du genre).
- Donc, tu appelles Key le nom de valeur ? :roll:
- 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...
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)...
salut,
il est possible que ça soit un probleme de droits d'accés....
verifie les droits d'acces avec regedt32.
:D
Et pour les noms: Normalement, la convention, c'est "valeur" pour le nom de valeur et "données" pour son contenu...Citation:
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.
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?
et surtout comment savoir quel nom d'utilisateur utilise le programme?
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...
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