PDA

Ver la Versión Completa : Como leer valores Binarios del Registro


JoAnCa
09-09-2015, 17:23:44
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 (http://delphiaccess.com/foros/index.php/topic/10198-escanear-el-registrro-de-windows-con-la-api/):


// 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:
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 (http://clubdelphi.com/foros/delphiaccess.com/foros/index.php/topic/10198-escanear-el-registrro-de-windows-con-la-api/) no funciona, me da pagina no encontrada

Casimiro Notevi
09-09-2015, 21:05:22
El enlace que mencionas escanear y buscar en todo el registro de Windows con la API (http://clubdelphi.com/foros/delphiaccess.com/foros/index.php/topic/10198-escanear-el-registrro-de-windows-con-la-api/) no funciona, me da pagina no encontrada
Prueba ahora.

JoAnCa
09-09-2015, 23:08:20
Prueba ahora.

Ok ya sale bien

Gracias