Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-09-2015
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Cool 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
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #2  
Antiguo 09-09-2015
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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.

Última edición por Casimiro Notevi fecha: 09-09-2015 a las 21:04:37.
Responder Con Cita
  #3  
Antiguo 09-09-2015
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
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
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes

Última edición por Casimiro Notevi fecha: 09-09-2015 a las 21:05:09.
Responder Con Cita
  #4  
Antiguo 09-09-2015
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
El enlace que mencionas escanear y buscar en todo el registro de Windows con la API no funciona, me da pagina no encontrada
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #5  
Antiguo 09-09-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por JoAnCa Ver Mensaje
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.
Responder Con Cita
  #6  
Antiguo 09-09-2015
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Prueba ahora.
Ok ya sale bien

Gracias
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Leer archivos binarios MasLoveAvge Varios 7 02-01-2016 11:29:40
Leer archivos binarios BDWONG Varios 2 02-03-2015 22:38:54
Leer valores hexadecimales del registro Feñiz OOP 1 28-01-2015 02:11:46
Leer archivos binarios JuanOrtega Varios 2 12-07-2013 01:37:12
Leer enteros de 32-bits en ficheros binarios elcaracas C++ Builder 2 08-04-2005 21:46:54


La franja horaria es GMT +2. Ahora son las 00:31:04.


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
Copyright 1996-2007 Club Delphi