Encore des problemes avec le registre!! [C++] - Programmation
Marsh Posté le 10-12-2001 à 17:07:29
Si jamais j'utilise les fonction RegOpenKey et RegSetValueEx: 
 
HKEY Hk1, Hk2; 
long error; 
 
Hk1 = HKEY_LOCAL_MACHINE; 
error = RegOpenKey(Hk1, "SYSTEM\\Test", &Hk2); 
RegSetValueEx(Hk2, "entry", 0, REG_SZ, (const BYTE *)"test", strlen("test" )); 
 
RegOpenKey me fait l'erreur 87 et RegSetValueEx l'erreur 6 
Marsh Posté le 10-12-2001 à 17:12:00
non en fait si je cree une clé ou une valeur dans SYSTEM moi même ca marche mais avec des clés existentes ca marche pas
Marsh Posté le 10-12-2001 à 17:17:24
Est-ce que tu as vu cela ? 
| Citation : The RegOpenKey function uses the default security access mask to open a key. If opening the key requires a different mask, the function fails, returning ERROR_ACCESS_DENIED. An application should use the RegOpenKeyEx function to specify an access mask in this situation.  | 
Marsh Posté le 10-12-2001 à 17:22:16
| seblamb a écrit a écrit  : Est-ce que tu as vu cela ? 
    | 
 
 
Ouais j'ai essayé la fonction RegOpenKeyEx avec la permission KEY_ALL_ACCESS ca change rien 
Marsh Posté le 10-12-2001 à 17:59:54
KEY_ALL_ACCESS donne tous les droits. Si le code d'erreur est ERROR_ACCESS_DENIED ça veut dire que tu ne peux pas tout faire avec ces clefs puisqu'elles sont gérées par le systeme. 
 
 
Utilise la fonction FormatMessage  ( regarde dans l'aide il y a un example) 
Comme ça tu gagneras du temps puisque windows se donne la peine de fournir une explication 
Marsh Posté le 11-12-2001 à 10:03:57
| seblamb a écrit a écrit  : KEY_ALL_ACCESS donne tous les droits. Si le code d'erreur est ERROR_ACCESS_DENIED ça veut dire que tu ne peux pas tout faire avec ces clefs puisqu'elles sont gérées par le systeme. Utilise la fonction FormatMessage ( regarde dans l'aide il y a un example) Comme ça tu gagneras du temps puisque windows se donne la peine de fournir une explication | 
 
 
Non l'erreur n'est pas ERROR_ACCESS_DENIED FormatMessage me renvoie "paramètre incorrect" alors que pour certaines autres clé ca met "Opération réussie" et cela en utilisant les mêmes fonctions. 
Marsh Posté le 14-12-2001 à 11:11:04
C'est très bizarre, maintenant ca marche mais j'ai dut remettre les chemins avec \ au lieu de \\, probleme que j'avais deja discuté dans ce sujet: 
http://forum.hardware.fr/forum2.ph [...] &owntopic= 
Donc maintenant ca marche tres bien c'est incompréhensible, si quelqu'un arrive a piger qu'il m'explique. 
Marsh Posté le 14-12-2001 à 11:22:16
bizarre, parce que normalement pour faire un \ il faut bien mettre \\...
Marsh Posté le 10-12-2001 à 16:45:55
Je sais c'est le 1000eme poste que je met sur ce sujet Mais la j'en ai marre on dirait que tous ce qui est dans la subkey SYSTEM de H_L_M ne peut pas être modifié ni être supprimé que ce soit pour les clés que pour les valeurs. Ca me fait l'erreur 6 déclarée dans winerror.h. Par contre si je fais une manip dans la subkey SOFTWARE aucun problemes.
 Mais la j'en ai marre on dirait que tous ce qui est dans la subkey SYSTEM de H_L_M ne peut pas être modifié ni être supprimé que ce soit pour les clés que pour les valeurs. Ca me fait l'erreur 6 déclarée dans winerror.h. Par contre si je fais une manip dans la subkey SOFTWARE aucun problemes.