uses Registry;
function ReadMultiString(Root: HKey; Key, Value: String; Strings: TStringList): Boolean;
var
Buffer: PChar;
Size: Integer;
i: integer;
begin
Result := FALSE;
with TRegistry.Create do
try
Access := KEY_READ;
RootKey := Root;
if OpenKey(Key, FALSE) then
begin
if ValueExists(Value) then
begin
Size := GetDataSize(Value);
if Size > 0 then
try
GetMem(Buffer, Size);
try
Fillchar(Buffer^, Size, #0);
ReadBinaryData(Value, Buffer^, Size);
for i := 0 to Size - 2 do
if Buffer[ i ] = #0 then Buffer[ i ] := #13;
Strings.Text:= String(Buffer);
Result:= TRUE;
finally
FreeMem(Buffer);
end;
except
end;
end;
CloseKey;
end;
finally
Free;
end;
end;