Bonjour à tous,
Voila, j'ai un problème pour écrire dans la base de registre. J'ai crée un petit ensemble d'outils qui doivent démarer avec windows. J'ai donc eu besoin d'inscrire dans le registre une clée permettant le chargement de mon programme dès le démarage de windows
Le code de ma fonction :
void registre()
{
HKEY hk;
DWORD dwData;
char szBuf[]= "C:\\WINDOWS\\gadget.exe ";
RegCreateKeyEx ( HKEY_LOCAL_MACHINE, //on définit l'emplacement
"Software\\Microsoft\\Windows\\CurrentVersion\\Run\",
0, //réservé
NULL, //par défaut
REG_OPTION_NON_VOLATILE, /*la clé est gardée en mémoire, même après redémarrage*/
KEY_WRITE, //permet de stocker des valeurs futures
NULL, //niveau de sécurité par défaut
&hk, //enregistrement de l'emplacement dans la variable hk
&dwData); //pointeur sur une variable
RegSetValueEx(hk, /*emplacement de la clé hk définit dans RegCreateKeyEx*/
"utilitairegadget", //nom de la chaîne (ici ZB)
0, //obligatoirement zéro
REG_SZ, //type de valeur (ici, une chaîne)
(LPBYTE) szBuf, //pointeur sur la valeur à ajouter
strlen(szBuf)); //longueur de la valeur
}
Avec des systemes comme windows XP ce code fonctionne à merveille. Mais lorsque je l'execute sur windows vista ou windows 7 rien ne se passe :-(
J'ai biensur pensé à un problème d'autorisation: Dans ce cas, comment faire pour s'accorder le droit de telles action sur le registre sachant que je dispose biensur du mot de passe administrateur.
J'ai même essayé de le faire par un fichier .reg:
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"gadget"="C:\Windows\gadget.exe"
Aucun problème ne m'est affiché mais je n'arrive pas à trouver cette clée avec regedit.
Voila, je suis preneur de toutes astuces/idées.
Je vous remercie d'avance et vous souhaite une bonne journée :-)