InfoMix.Ru - У нас можно найти бесплатные программы для Windows, психологические тесты, проверенную халяву, рефераты, Photoshop Top Secret и многое другое!

Мобильный MegaPack
Мобильный MegaPack - Эксклюзив! 3 DVD диска! 10 гб. мобильного контента! Ничего подобного вы не найдете ни в одном магазине Вашего города и ни в одном интернет-магазине, кроме нашего!
На этом DVD вы найдёте всё для Вашего мобильного – документация, обзоры разных моделей телефонов и смартфонов, секреты и фишки, более 5000 Java и Sis игр для мобильного, рингтоны и мелодии, программы для их создания и конвертирования, картинки, анимация, видео в формате 3GP, прошивки, программы для синхронизации и работы с ПК, Драйвера, софт для разблокировки, закачки файлов, настройки GPRS и других манипуляций с телефоном посредством DATA кабеля для телефонов Alcatel, LG, Motorola, Nokia, Panasonic, Philips, Sagem, Samsung, Sharp, Siemens, SonyEricsson...
Цена: 347.00р. / 14.60$ Доставка бесплатно!
Перейти на страницу с более подробным описанием...

Обзоры
Магазин DVD дисков
 Видео на DVD
 Хентай
 Клипы
 Клубничка
 Сериалы
 Лучшее из интернета
 Дополнения к играм
 Тематические сборники
 Операционные системы
 Дистрибутивы
 Софт

 Скачать прайс

Добавь в закладки!

Разыскиваем авторов!
Разыскиваем авторов!

Уважаемые авторы, Вы имеете потрясающую возможность публиковать свои статьи, рефераты, анонсы бесплатного софта, интересные новости и многое другое у нас на портале!

Подробности тут...

Посетителей сегодня


Сохранение бинарного файла в реестре с последующим его извлечением

Функции позволяют разбить файл на блоки 16к и затем поместить бинарные данные в реестр, а так же собрать эти данные обратно в файл при необходимости. Не знаю зачем этот код нужен, но возможно он пригодится для скрытого хранения данных...

Автор: Sergey
Контакт:
Источник:
Просмотров: 413
Сервис: версия для печати | обсудить в форуме | расказать другу | html/bb код | в rss



{ **** UBPFD *********** by delphibase.endimus.com ****
>> Сохранение бинарного файла в реестре с последующим его извлечением

Функции позволяют разбить файл на блоки 16к и затем поместить бинарные
данные в реестр, а так же собрать эти данные обратно в файл при необходимости.
Не знаю зачем этот код нужен , но возможно он пригодится для скрытого
хранения данных . Не рекомендуется (!) сохранять слишком большие файлы
в реестре , потому что размеры реестра ограничены .

Зависимости: Registry,SysUtils
Автор:       Sergey, gloom@imail.ru, Koenigsberg
Copyright:   KosilkA
Дата:        4 декабря 2003 г.
***************************************************** }

//////////////////////////////////////////////////
// функция разбивки и сохранения файла в реестр:

function SaveToRegistry(RootKey: HKEY; FileName, KeyName: string): Bool;
//где RootKey-раздел реестра,
//FileName-путь к файлу ,
//KeyName-ключ реестра в который будем сохранять
var
  FromF: file;
  NumRead, i: Integer;
  Buf: array[0..16383] of byte;
  reg: tregistry;
begin
  try
    AssignFile(FromF, filename);
    Reset(FromF, 1);
    reg := tregistry.Create;
    reg.RootKey := rootkey;
    if reg.OpenKey(keyName, true) = false then //если невозможно
      //открыть ключ с правами
      //записи , то что то не так
    begin
      result := false;
      reg.Free;
      exit; //выходим
    end;
    i := 0;
    repeat //читаем и записывае в цикле
      BlockRead(FromF, Buf, SizeOf(Buf), NumRead); //читаем блок из файла
      if numread <> 0 then
      begin
        reg.WriteBinaryData(inttostr(i), buf, numread); //сохраняем блок в реестр
        inc(i);
      end;
    until (NumRead = 0);
    CloseFile(FromF);
    reg.CloseKey;
    reg.Free;
    result := true;
  except
    reg.CloseKey;
    reg.Free;
    result := false;
  end;
end;

//////////////////////////////////////////////////
// функция сборки сохраненного файла:

function BuildFromRegistry(RootKey: HKEY; KeyName, ToFileName: string): Bool;
//где RootKey-раздел реестра,
//KeyName -ключ реестра ,
//ToFileName-имя выходного файла .
var
  numwritten, i: integer;
  ToF: file;
  Buf: array[0..16383] of byte;
  reg: tregistry;
begin
  try
    AssignFile(ToF, tofilename);
    Rewrite(ToF, 1);
    reg := tregistry.Create;
    reg.RootKey := rootkey;
    if reg.OpenKey(keyname, true) = false then
      //если указанный ключ невозможно открыть - выходим
    begin
      result := false;
      reg.Free;
      exit;
    end;
    i := 0;
    repeat
      //в цикле находим значения
      //начиная с "0" , читаем их
      //и добавляем блоки к файлу
      if reg.ValueExists(inttostr(i)) = true then
      begin
        reg.ReadBinaryData(inttostr(i), buf, reg.GetDataSize(inttostr(i)));
        BlockWrite(ToF, Buf, reg.GetDataSize(inttostr(i)));
      end;
      inc(i);
    until reg.ValueExists(inttostr(i)) = false;
    CloseFile(ToF);
    reg.CloseKey;
    reg.Free;
    result := true;
  except
    reg.CloseKey;
    reg.Free;
    result := false;
  end;
end;

// Пример использования:

// сохранить:
SaveToRegistry(HKEY_CURRENT_USER, Application.ExeName, '\Software\MyData\test');

// извлечь:
BuildFromRegistry(HKEY_CURRENT_USER, '\Software\MyData\test', 'MyBuildApp.exe');

 

OS и Железо | 2008-01-16 

В начало библиотеки | В начало данного раздела | Скачать InfoDigest

другие статьи текущего раздела

комментарии
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание!

Комментарии отсутствуют!


Оставить свой комментарий:

Как вас зовут:   
Текст комментария:
Необходимо ввести защитный код! (включите отображение картинок):

Наша рассылка
ПОДПИШИСЬ!
Подпишись на нашу убойную рассылку, и ты еженедельно будешь получать на e-mail самые интересные новости, тесты, опросы, анекдоты, прямые ссылки на лучший софт, обзоры "халявы", анонсы новых статей в нашей библиотеке, последних новинок нашего магазина, новых тем форума и многое-многое другое!

Архив рассылки
Подробнее/Подписка


Опрос

Вы выключаете свой компьютер на ночь?






Магазин DVD дисков
Доставка бесплатна!
Мы оплачиваем все расходы*, связанные с доставкой вашего заказа в нашем магазине DVD дисков!

как сделать заказ
как оплатить
о доставке

 

© 2009 Руководитель - Березин Юрий (ICQ: 7741822), Программирование - GoldStudio.ru
При перепечатке материалов ссылка на наш портал обязательна!