type
TKeyName = packed record
Name: ShortString;
Value: LongInt;
end;
var
KeyNames: array[0..1] of TKeyName = (
(Name: 'HKEY_USERS'; Value: HKEY_USERS);
(Name: 'HKEY_CURRENT_USER'; Value: HKEY_CURRENT_USER);
);
function GetValueFromName(AName: ShortString): LongInt;
var i: Integer;
begin
Result := -1; { Arbitrary value chosen as error marker }
for i := Low(KeyNames) to High(KeyNames) do
if KeyNames[i].Name = AName then begin
Result := KeyNames[i].Value;
Break;
end;
end;
{ And elsewhere ... }
Key := 'HKEY_USERS';
HighKeyLI := GetValueFromName(Key)