Bonjour
Je cherche à lire la base de registre afin d’en extraire le répertoire d’installation de Firebird
(Code rédigé en Delphi)
Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 begin var reg : TRegistry; reginfo:TRegKeyInfo; begin reg := TRegistry.create; reg.RootKey := HKEY_LOCAL_MACHINE; if (reg.OpenKeyReadOnly(SOFTWARE\Firebird Project\Firebird Server\Instances)) then begin reg.GetKeyInfo(reginfo); Edit5.text:=inttostr(reginfo.NumSubKeys); end else Edit5.text:='Echec'; Reg.closeKey; reg.Free; end;
Le code ci-dessus renvoie «’Echec’»
si en revanche je mets une autre entrée de la même clé (HKEY_LOCAL_MACHINE\SOFTWARE) par exemple «ATI Technologies», j’obtiens : 1 (le nombre de sous clés)
Et si je poursuis ce test sur toutes les clés de HKEY_LOCAL_MACHINE\SOFTWARE je constate que certaines sont lues, d’autres, non. 'Logitech' n'est pas accessible mais 'Google' l'est.
Cela ne tient pas aux autorisations des clés. Elles sont toutes lisibles par les Utilisateurs.
Si quelqu'un a l'explication de ce curieux comportement ?
Partager