![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Реестр и бинарные данные [D6, WinXP]
Дом © (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.