Ver Mensaje Individual
  #2  
Antiguo 07-06-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Reputación: 20
cHackAll Va por buen camino
Cool Ok

Puedes poner CUALQUIER cosa, por ejemplo si es de tu agrado, no es lo mejor pero podrias poner hasta un archivo entero, un paquete de Socket, una Variable, lo que sea... por ejemplo voy a meter al Icono de la aplicacion al registro, junto con el nombre donde lo guardo temporalmente y su tamaño.

Código Delphi [-]
uses Registry;
 
const FileName: PChar = 'c:\ProjectX.ico';
 
var Buffer: array [0..1024*1024-1] of Char; // Buffer de hasta un mega para el ejemplo

procedure TForm1.Button1Click(Sender: TObject);
var Registro: TRegistry; hFile, Size: Cardinal;
begin
 Application.Icon.SaveToFile(FileName);
 hFile := CreateFile(FileName, GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
 ReadFile(hFile, Buffer, GetFileSize(hFile, nil), Size, nil);
 CloseHandle(hFile);
 try
  Registro := TRegistry.Create;
  Registro.RootKey := HKEY_LOCAL_MACHINE;
  if Registro.OpenKey('SOFTWARE', False) then
   begin
    Registro.WriteBinaryData('FileName', FileName^, StrLen(FileName) + 1);
    Registro.WriteBinaryData('Size', Size, 4);
    Registro.WriteBinaryData('Data', Buffer, Size);
   end;
  Registro.CloseKey;
 finally
  Registro.Free;
 end;
end;

Sin embargo como ya te comentaba no es correcto meter todo un archivo, lo hice solo para darte una idea... te aconsejo leer la ayuda del propio Delphi a la API 'RegSetValueEx' para tener una idea de los métodos de optimizacion que pensaron los de Microsoft para ésto tipo de variable...

Espero me hayas entendido.
Responder Con Cita