uses Registry;
const FileName: PChar = 'c:\ProjectX.ico';
var Buffer: array [0..1024*1024-1] of Char;
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;