pavlov a écrit a écrit :
Elle se trouve à l'emplacement suivant: "HKEY_CURRENT_USER\\Software\\my_company\\mon_soft\\Install\\Repertoire"
...
Doit-je placer ma clé ailleurs ?
...
|
Comme tu peux le voir, ta clé est dans HKEY_CURRENT_USER qui contient les paramètres de l'utilisateur en cours. C'est à dire que quand tu installes ton soft en tant que l'utilisateur "Administrateur", la clé n'est installée que pour cet utilisateur.
Il te faut donc trouver un autre endroit commun à tous les utilisateurs ou un moyen de copier cette clé sur tous les comptes (selon ce que tu souhaites). Au vu de la clé que tu cherches à obtenir, j'ai l'impression que la première solution est plus adaptée.
1. Clé commune à tout le monde:
Ici, il s'agit de la clé "HKEY_LOCAL_MACHINE" qui est utilisée. Evidemment, elle contient tout ce qui est spécifique à la machine. Elle doit être utilisée pour stocker des informations qui ne doivent pas changer selon l'utilisateur (par exemple, le chemin d'installation du programme). Dans ton cas, le chemin complet serait : "HKEY_LOCAL_MACHINE\Software\my_company\mon_soft\Install\Repertoire". Par contre, tu es obligé de changer le code du programme car il n'y a pas de fonctions toutes faites dans l'API Windows pour accéder à ces clés (tu peux trouver partout sur le net des fonctions toutes prêtes).
2. Copie de la clé à tous les utilisateurs:
Il faut utiliser cette stratégie si on souhaite proposer une option que chaque utilisateur peut modifier. Un exemple simple dans Windows est l'économiseur d'écran qui est propre à chaque utilisateur. Pour cela, tu doit énumérer les "sous-clés" de HKEY_USERS qui contient les paramètres de tous les utilisateurs et les paramètres par défaut (ceux qui sont utilisés lors de la création d'un nouvel utilisateur). HKEY_CURRENT_USER est une image de ces paramètres (je ne sais pas si c'est une copie ou un "pointeur" ). Pour ton cas tu aurais quelque chose du genre "HKEY_USERS\.DEFAULT\Software...", "HKEY_USER\X-X-XX-XXXXX\Software...", etc. Et ici, pas besoin de changer le code dans le programme.
---------------
each day I don't die is cheating