-
Utilisation du registre
Bonjour.
Je cherche à utiliser le registre windows pour enregistrer des paramètres liés à un logiciel puis les lire.
J'ai suivi les indications de la page https://delphi.developpez.com/faq/?p...se-de-registre
Dans un premier temps je crée la clé et ses valeurs lors de l'installation. Pour d'autre raison j'ai fait cela en administrateur et ça marche parfaitement quelle que soit la racine utilisée. Mais je viens de réessayer sans le mode admin et là je n'arrive même pas à créer la clé !
Ensuite je veux lire ces informations depuis le logiciel installer puis en modifier certaine.
Or là encore même la lecture échoue.
La référence plus haut ne donne guère d'indication sur l'accès aux clés, sont-elles par défaut accessible seulement à l'admin ou l'utilisateur, et le petit paragraphe sur les droits est limité.
Bien qu'ayant fixé le paramètre
Code:
Access:=KEY_ALL_ACCESS;
il semble que je ne peux lire et modifier les valeurs qu'en tant qu'admin. Vraiment étrange.
Mieux, depuis regEdit (donc comme admin), le créateur propriétaire n'a même pas le droit de lecture et cela est automatiquement annulé.
Je suis tout de même parvenu à changer manuellement les droits pour tout utilisateur puis lire les valeurs depuis l'appli.
Comment faire pour savoir qui a le droit de faire quoi sur une clé et dans quelle racine ?
Comment faire pour depuis mon logiciel qui crée la clé autoriser l'accès aux utilisateurs ?
Pour autant que j'ai vu, uniquement HKEY_CURRENT_USER permet d'obtenir ce que je veux.
Merci.
-
Bonjour
Tu devrais te documenter ou poser des questions dans un forum Windows, parce que Lazarus n'est pas responsable de tes problèmes et peu de ses utilisateurs s'appuient sur la base de registre Windows.
Je dirais même plus, il est déconseillé de l'utiliser car cela empêche la portabilité vers les autres systèmes où il n'y a pas de base de registre. Même sous Delphi, je pense que c'est à éviter aujourd'hui.
Ceci dit, il est certain que seule une partie de la base de registre Windows (celle sous HKEY_CURRENT_USER, je crois) est accessible aux non administrateurs et, heureusement, ça ne dépend pas du logiciel employé.
-
KEY_ALL_ACCESS demande des droits en écriture, ce qu'un utilisateur standard n'a pas (HKLM, HKCR, etc. = access denied) mais la lecture est possible en spécifiant KEY_READ.