Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Leer un REG_MULTI_SZ en el registro (https://www.clubdelphi.com/foros/showthread.php?t=80444)

seoane 08-06-2006 15:49:59

Leer un REG_MULTI_SZ en el registro
 
Código Delphi [-]
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;


Ejemplo de uso:
Código Delphi [-]
var
  Lista: TstringList;
  i: Integer;
begin
  Lista:= TStringList.Create;
  try
    if ReadMultiString(HKEY_LOCAL_MACHINE,
      '\SYSTEM\CurrentControlSet\Control\ContentIndex',
      'DLLsToRegister', Lista) then
      for i:= 0 to Lista.Count-1 do
        ShowMessage(Lista[ i ]);
  finally
    Lista.Free;
  end;
end;


La franja horaria es GMT +2. Ahora son las 11:03:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi