Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Реестр и бинарные данные [D6, WinXP]


Страницы:   1 2 3

Дом ©   (2006-10-04 20:12:00) 

Помогите, пожалуйста!!! Нужно очень срочно а у мня не выходит это :-(. Нужно с реестра винды вытащить бинарные данные и сохранить их в текстовый файл(как они есть). Заранее спасибо.


Джо   (2006-10-05 01:14:00) [21]

> [25] Дом   (05.10.06 01:09)
> что то он у меня ничего не создает :(

А что ты хочешь, чтобы оно у тебя создавало? Если файл, то, значит, до этого и не дошло :) Ветки или ключ могут не существовать или параметр может быть не типа BINARY. Я лично у себя в реестре вообще такого не нашел.


Дом   (2006-10-05 01:09:00) [22]

что то он у меня ничего не создает :(


Джо   (2006-10-05 01:04:00) [23]

> [21] Ketmar ©   (05.10.06 00:58)
> >[16] Джо(c) 5-Oct-2006, 00:49
> >я что-то подобрел :)
> страшные симптомы. срочно лечи это. а то перейдёт в хроническую
> стадию...

Да... Германн тут прав, это всё инородные ферменты :)


Джо   (2006-10-05 01:04:00) [24]

Да, и проверить Sz на -1.


Джо   (2006-10-05 01:03:00) [25]

В таком роде, в первом приближении.
procedure TForm1.Button1Click(Sender: TObject);
const
 BranchName = 'Software\Microsoft\MediaPlayer\ISeeTheTruth';
 KeyName = 'Palette';
var
 Reg: TRegistry;
 Sz: Integer;
 Data: array of Char;
 Text: string;
 F: TextFile;
begin
 Reg := TRegistry.Create (KEY_READ);
 try
   if Reg.OpenKey(BranchName,False) then
   begin
     Sz := Reg.GetDataSize(KeyName);
     SetLength(Data,Sz);
     Reg.ReadBinaryData(KeyName,Data[0],Sz);

     // каждый байт будет занимать 2 символа
     SetLength (Text, Sz*2);

     // конфертируем в hex-строку
     BinToHex (@Data[0],PChar(Text),Sz);

     AssignFile (F,'d:\registrydata.txt');
     Rewrite (F);
     try
       WriteLn (F,Text);
     finally
       CloseFile (F);
     end;

   end;
 finally
   Reg.Free;
 end;
end;


Ketmar   (2006-10-05 00:58:00) [26]

>[16] Джо(c) 5-Oct-2006, 00:49
>я что-то подобрел :)
страшные симптомы. срочно лечи это. а то перейдёт в хроническую стадию...


Германн   (2006-10-05 00:52:00) [27]


> Сейчас напишу как надо, я что-то подобрел :)
>

Серёгу понесло. Видать Хортиця сегодня особо вкусная :-) Шутка.


Дом   (2006-10-05 00:51:00) [28]

т.е.?


Германн   (2006-10-05 00:50:00) [29]


> вот, вроде читать читает, а как сохранить это чтобы его
> можно было прочесть потом...не знаю как
>

Ну так ты скоро крупно нарвешься!


Дом   (2006-10-05 00:49:00) [30]

ок спасибо :)


Джо   (2006-10-05 00:49:00) [31]

Да и вообще код плохой. Сейчас напишу как надо, я что-то подобрел :)


Дом   (2006-10-05 00:48:00) [32]

и с тем...


Джо   (2006-10-05 00:48:00) [33]

> Buffer: array[0..1000] of string;

Ай! Даже и не заметил. Во-первых, of byte, во-вторых 0..999, раз уж размер 1000.


Дом   (2006-10-05 00:47:00) [34]

да и с этим BinToHex не работал(понятия не имею как)


Джо   (2006-10-05 00:47:00) [35]

> [11] Дом   (05.10.06 00:46)
> вот, вроде читать читает, а как сохранить это чтобы его
> можно было прочесть потом...не знаю как

См. пост [1] пункт 2.


Дом   (2006-10-05 00:46:00) [36]

var
REG : TRegistry;
Buffer: array[0..1000] of string;
begin
REG := TRegistry.Create;
REG.RootKey:=HKEY_CURRENT_USER;
if REG.OpenKey('\Software\Microsoft\MediaPlayer\ISeeTheTruth',false) then
begin
REG.ReadBinaryData('Palette', buffer, 1000);
end;
REG.CloseKey;
REG.free;

вот, вроде читать читает, а как сохранить это чтобы его можно было прочесть потом...не знаю как


Германн   (2006-10-05 00:44:00) [37]


> Джо ©   (05.10.06 00:38) [9]

Да Серёг есть даже в Д4.
Кто-то меня попутал. Про другое подумал. :-(


Джо   (2006-10-05 00:38:00) [38]

> [8] Германн ©   (05.10.06 00:37)
> В Д6 есть BinToHex?

В Д6 есть BinToHex :)


Германн   (2006-10-05 00:37:00) [39]


> Дом   (05.10.06 00:29) [6]
>
> хорошо предположим перегнать в хекс... как это сделать(у
> меня вообще что то ничего не выходит)... дайте плз код
>

Лучше ты дай свой код, который у тебя не работает, а мы поищем в нём ошибки. А то нарвёшся на обвинения в "халяве". Кроме того по твему коду может выясниться, что мы тебя неправильно понимаем.


> Джо ©   (05.10.06 00:30) [7]
>
> BinToHex.

В Д6 есть BinToHex?


Джо   (2006-10-05 00:30:00) [40]

> [6] Дом   (05.10.06 00:29)
> хорошо предположим перегнать в хекс... как это сделать(у
> меня вообще что то ничего не выходит)... дайте плз код

BinToHex.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо