Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как внести в реестр бинарные данные, Как внести изначение в ключ реестра 
:(
    Опции темы
Waterman
Дата 23.12.2005, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



Подскажите пожалуйста как проще внести в реестр бинарные данные.
Например:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\CDFS]
"CacheSize"=hex:ff,ff,00,00

Строковые и целые вносятся просто и без проблем.

Код

Reg.OpenKey('\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\', True);
      Reg.WriteString('Auto','0');
      Reg.CloseKey;

Reg.OpenKey('\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\', True);
      REG.WriteInteger('DisablePagingExecutive',00000001);
      Reg.CloseKey; 


Если можно приведите работающий код. Желательно как можно проще.
Спасибо.

Это сообщение отредактировал(а) Girder - 23.12.2005, 23:23
PM MAIL   Вверх
FRAGNATIC
Дата 23.12.2005, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



WriteBool
WriteBinary
PM MAIL   Вверх
Guest
Дата 23.12.2005, 23:44 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А как это всё вставить в программу?
Как выглядит сама прцедура. Я пробовал но, видимо что-то не так делал и выдаёт ошибку.
Код

WriteBool
WriteBinary 

  Вверх
Albinos_x
Дата 24.12.2005, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата(Guest @ 23.12.2005, 23:44)
Я пробовал но, видимо что-то не так делал и выдаёт ошибку.

код покажи...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Poseidon
Дата 24.12.2005, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(Guest @ 23.12.2005, 23:44)
А как это всё вставить в программу?
Как выглядит сама прцедура. Я пробовал но, видимо что-то не так делал и выдаёт ошибку.
smile smile smile

Код
Reg.OpenKey('\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\', True);
      Reg.WriteBinary('Auto',бинарное значение);
      Reg.CloseKey;




--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Гость_Павел
Дата 29.12.2005, 00:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Так не работает. Почему то не хочет воспринимать WriteBinary
Код

Reg.OpenKey('\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\', True);
      Reg.WriteBinary('Auto',бинарное значение);
      Reg.CloseKey;


Может что не так.
  Вверх
Albinos_x
Дата 29.12.2005, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата
Почему то не хочет воспринимать WriteBinary

в каком смысле? может у тебя ключ не открывается?
Код

if Reg.OpenKey('\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\', True) then
      begin    
      Reg.WriteBinary('Auto',бинарное значение);    
      Reg.CloseKey;
      end
      else
      ShowMessage('ключ не открыт');



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Гость_Павел
Дата 29.12.2005, 00:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я вношу такие ключи в реестр:

Код


Reg.RootKey := HKEY_LOCAL_MACHINE;
    Reg.OpenKey('\SYSTEM\CurrentControlSet\Control\FileSystem\CDFS\', True);
    REG.WriteInteger('Prefetch',16384);
    REG.WriteInteger('PrefetchTail',16384);

    Reg.WriteBinary('CacheSize',ff,ff,00,00); 

Reg.CloseKey;

И программа останавливается на Reg.WriteBinary('CacheSize',ff,ff,00,00);
Что-то не то делаю.
  Вверх
Albinos_x
Дата 29.12.2005, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Reg.WriteBinary(const name:string;var Buffer,BufferSize:integer);

Это сообщение отредактировал(а) Albinos_x - 29.12.2005, 01:05


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Teran
Дата 29.12.2005, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Читать данные:

Код

var
......
Buffer  : Array[0..65535] of Byte;
BufSize : Integer;
begin
........
 Reg.GetKeyInfo(KeyInfo);
 if KeyInfo.NumValues<0 then Exit;
 ValueNames := TStringList.Create;
 Reg.GetValueNames(ValueNames);
 for i := 0 to ValueNames.Count-1 do
   begin
   DataType := Reg.GetDataType(ValueNames[i]);
   Case DataType of
    rdString: begin  str := Reg.ReadString(ValueNames[i]);end;
    rdExpandString: begin  str := Reg.ReadString(ValueNames[i]);end;
    rdInteger: begin str:= '0x'+IntToHex(Reg.ReadInteger(ValueNames[i]),8)+'('+IntToStr(Reg.ReadInteger(ValueNames[i]))+')';end;
    rdBinary: begin 
               BufSize :=Reg.ReadBinaryData(ValueNames[i], Buffer, SizeOf(Buffer));
               int :=0;Str:='';  // convert char to hex
               repeat
                ch :=IntToHex(Buffer[int], 2);
                Str :=Str + ch+' ';
                inc(int);
               until int >= BufSize ;
              end;

   else begin str:= '???';end;
   end;
   str -----  Тут находятся значение
   end;
 ValueNames.Free;



Писать:
Код

var
Buffer:Pointer;
i : Integer;
.......
begin
......
Reg.WriteString(bsSkinEdit1.Text,bsSkinEdit2.Text);

Reg.WriteInteger(bsSkinEdit1.Text,strtoint(bsSkinEdit2.Text));

i:=Length(MPHexEditor1.AsHex) div 2;  //MPHexEditor1- компонент шестнадцатеричный редактор
Buffer:=AllocMem(i);
HexToBin(Pchar(MPHexEditor1.AsHex),Buffer,i);
Reg.WriteBinaryData(bsSkinEdit1.Text,Buffer^,i);



--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0793 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.