1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
procedure SetRegistryData(RootKey : HKEY; Key, value : string ; RegDataType : TRegDataType; Data : variant);
{Pour simplifier l'écriture d'une valeur de données pour le Registre, vous pouvez
utiliser cette procédure suivante qui peut écrire n'importe quel type de données
dans le Registre. La procédure effectue le traitement des exceptions}
{Exemple d'utilisation :
SetRegistryData (HKEY_LOCAL_MACHINE,
'\Software\Microsoft\Windows\CurrentVersion\',
'RegisteredOrganization',
rdString,
'Latium Logiciel');}
var
Reg : TRegistry;
S : string;
begin
Reg := TRegistry.Create(KEY_WRITE);
Try
Reg.RootKey := RootKey;
if Reg.OpenKey(Key, true)
then begin
Try
if RegDataType = rdUnknown
then RegDataType := Reg.GetDataType(Value);
if RegDataType = rdString
then Reg.WriteString(Value, Data)
else if RegDataType = rdExpandString
then Reg.WriteExpandString(Value, Data)
else if RegDataType = rdInteger
then Reg.WriteInteger(Value, Data)
else if RegDataType = rdBinary
then begin
S := Data;
Reg.WriteBinaryData(Value, PChar(s)^, Length(S));
end
else raise Exception.Create(SysErrorMessage(ERROR_CANTWRITE));
except Reg.CloseKey;
raise;
end;
Reg.CloseKey;
end else raise Exception.Create(SysErrorMessage(GetLastError));
Finally
Reg.Free;
end;
end; |
Partager