Registre chez vista ou windows 7 [Résolu]

Messages postés
193
Date d'inscription
mercredi 7 septembre 2005
Statut
Membre
Dernière intervention
8 juillet 2010
- - Dernière réponse : baby3378
Messages postés
193
Date d'inscription
mercredi 7 septembre 2005
Statut
Membre
Dernière intervention
8 juillet 2010
- 2 juin 2010 à 19:45
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 :-)
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
3
Merci
MSDN RegCreateKeyEx
Il y a un lien vers les explications: "Registry Virtualization".

ciao...
BruNews, MVP VC++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 198 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
3
Merci
Regarde le flag d'ouverture REG_KEY_DONT_VIRTUALIZE.
Indispensable pour HKLM et droits administrateurs.

ciao...
BruNews, MVP VC++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 198 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BruNews
Messages postés
193
Date d'inscription
mercredi 7 septembre 2005
Statut
Membre
Dernière intervention
8 juillet 2010
3
Merci
Merci BruNews mais j'ai eu trop de difficultés à trouver, ca doit pourtant être évident et facile à trouver mais je ne doit pas être assez observateur.

J'ai trouvé ça, et ça a l'air de marcher :
RegCreateKeyEx( HKEY_CURRENT_USER,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\run",0,"", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, & SecAtt, &Retour, &Action);



Voilà si vous connaissez mieux et qui puisse éviter les avertissement intempestifs des logiciels de protection .. je suis preneur :-)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 198 internautes nous ont dit merci ce mois-ci

Commenter la réponse de baby3378
Messages postés
193
Date d'inscription
mercredi 7 septembre 2005
Statut
Membre
Dernière intervention
8 juillet 2010
0
Merci
Merci pour l'indication, malheureusement je me débrouille assez mal en anglais :s.

J'ai vu qu'il y avait un problème de virtualisation au niveau de la base de registre sensible mais comment surpasser cet obstacle?
Existerait-il un exemple qui utilise un parade à celà ?
Commenter la réponse de baby3378