Ver Mensaje Individual
  #2  
Antiguo 16-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola martonbarbosa.

No estoy seguro de haber entendido lo que buscas... Según creo interpretar, deseas obtener el valor de determinada clave.

Código Delphi [-]
function GetKeyValue(const aRootKey: HKEY; const aKey, aName: string): string;
var
  rd: TRegDataInfo;
  size: Cardinal;
  st: string;
begin
  with TRegistry.Create do
  try
    RootKey:= aRootKey;
    st := '';
    if OpenKey(aKey, False) then
    begin
      if GetDataInfo(aName, rd) then
        case rd.RegData of
          rdUnknown: Result := '';
          rdInteger: Result := IntToStr(ReadInteger(aName));
          rdString , rdExpandString: Result := ReadString(aName);
          rdBinary : begin
                       size:= GetDataSize(aName);
                       SetLength(st, size);
                       ReadBinaryData(aName, PChar(st)^, size);
                       Result:= st;
                     end;
        end;
      CloseKey;
    end
  finally
    Free;
  end;
end;

Ejemplo de llamada:
Código Delphi [-]
{ Mostrar la clave de producto de Windows en un Edit }
procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text:= GetKeyValue(HKEY_LOCAL_MACHINE,
                          'SOFTWARE\Microsoft\Windows NT\CurrentVersion',
                          'ProductId');
end;
En el caso de un tipo rdBinary al convertirlo a string, con seguridad obtendrás caracteres ilegibles.
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita