Bonjour,
J'ai écrit une procédure qui lit une clef de registre et vérifie si la valeur est juste.
Les paramètres passées sont :
Param[1]: le Root (=HKEY_LOCAL_MACHINE)
Param[2]: le chemin de la clef (='SOTFWARE\Microsoft\Windows\CurrentVersion')
Param[3]: le nom de la valeur (='RegDone')
Param[4]: le type (='String')
Param[5]: la valeur (='1')
Le problème c'est que la ligne reg.Openkey ne passe pas, il renvoie false et zappe les conditions if, etc...
J'ai même essayé avec le paramètre true (créé la clef si existe pas)
Ça ne passe pas plus.
Avez-vous une idée de ce qui se passe?
C'est comme si je ne pouvais pas accéder à ma BdR...
Code : 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 //créé la clef Reg:=TRegistry.Create; //définit la clef principale Reg.RootKey:=StrToHKEY(Param[1]); //ouvre la clef if Reg.OpenKey(Param[2],True) then //prend la valeur et compare if Reg.ValueExists(Param[3]) then if (Param[4]='Int') or (Param[4]='DWord') then if Reg.ReadInteger(Param[3])=StrToInt(Param[5]) then Etat[Num]:=1 else if Param[4]='Str' then if Reg.ReadString(Param[3])=Param[5] then Etat[Num]:=1; //ferme la clef Reg.CloseKey; //libère la variable Reg.Free;
Partager