Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Como leer valores Binarios del Registro (https://www.clubdelphi.com/foros/showthread.php?t=88996)

JoAnCa 09-09-2015 17:23:44

Como leer valores Binarios del Registro
 
Hola a todos
Ya vi un hilo donde dice como leer los valores hexadecimales del Registro de Windows, pero yo necesito como leer un valor binario y convertirlo a string

Algunas claves del registro que me interesan, tienen los valores en binario, y no se como llevarlos a string, para que se pueda entender lo que dicen

escafandra 09-09-2015 18:15:26

Los valores binarios no se pueden entender a simple vista, no se pueden pasar a caracteres porque no lo son, a no ser que te refieras a pasarlos a caracteres hexadecimales. En ese caso aquí tienes esta función que ya publiqué como parte del código de una unit para escanear y buscar en todo el registro de Windows con la API:

Código Delphi [-]
// Convierte un buffer binario en una cadena de números hexadecimales
function BinToStr(Bin: PBYTE; BinSize: DWORD; Str: PCHAR; var StrSize: DWORD): boolean;
var
  i: DWORD;
begin
  if Str <> nil then
  begin
    if StrSize >=  2*BinSize + 4 then
    begin
      for i:=0 to BinSize-1 do
      begin
        Str^:= CHAR(($0F and (Bin^ shr 4)) + 48);
        (Str+1)^:= CHAR(($0F and Bin^) + 48);
        if Str^ > '9' then inc(Str^, 7);
        if (Str+1)^ > '9' then inc((Str+1)^, 7);
        inc(Bin); inc(Str, 2);
      end;
      Str^:= #10; inc(Str);
      Str^:= #13; inc(Str);
      Str^:= #0;
      Result:= true;
    end
    else Result:= false;
  end
  else
  begin
     StrSize:= 2*BinSize + 4; // '\0' y dos caracteres de mas para el final en "\r\n"
     Result:= true;
  end;
end;

Esta función realiza la conversión o te devuelve la cantidad de memoria a reservar para el buffer (Str)


Saludos.

JoAnCa 09-09-2015 19:20:31

Me referia a esta clave del registro:
Cita:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
que muestra los valores en Binario, y son los documentos recientes usados, veo que cuando abres la clave se muestraen la ventana en binario hexadecimal y texto, habra que combinar lo que me dices, que aun no lo he revisado

JoAnCa 09-09-2015 20:06:44

El enlace que mencionas escanear y buscar en todo el registro de Windows con la API no funciona, me da pagina no encontrada

Casimiro Notevi 09-09-2015 21:05:22

Cita:

Empezado por JoAnCa (Mensaje 496485)
El enlace que mencionas escanear y buscar en todo el registro de Windows con la API no funciona, me da pagina no encontrada

Prueba ahora.

JoAnCa 09-09-2015 23:08:20

Cita:

Empezado por Casimiro Notevi (Mensaje 496494)
Prueba ahora.

Ok ya sale bien

Gracias


La franja horaria es GMT +2. Ahora son las 21:56:35.

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