Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.10;
Скачать: CL | DM;

Вниз

Реестр   Найти похожие ветки 

 
Seldon   (2003-01-10 22:15) [0]

Здрасьте!
Мастера, как сохранить ветку реестра в файл?


 
Rouse_ ©   (2003-01-10 22:43) [1]

Вот, думаю переписать на дельфи сможешь

bool SaveSubKey(TRegistry *reg, AnsiString key, TStrings *str)
{
byte data[50 * 1024]; //50k
TStrings *Keys = new TStringList();
TStrings *Values = new TStringList();

reg->OpenKey(key,false);
str->Add("");
str->Add("[HKEY_LOCAL_MACHINE" + key + AnsiString("]"));


reg->GetValueNames(Values);
reg->GetKeyNames(Keys);
for(int i = 0; i < Values->Count; i++)
{
TRegDataType type = reg->GetDataType(Values->Strings[i]);
int size = reg->GetDataSize(Values->Strings[i]);
AnsiString value = "\"" + Values->Strings[i] + AnsiString("\"=");
switch(type)
{
case rdUnknown:
case rdString:
case rdExpandString:
value += "\"" + reg->ReadString(Values->Strings[i]) + AnsiString("\"");
break;
case rdInteger:
value += "dword:" + IntToHex(reg->ReadInteger(Values->Strings[i]),8);
break;
case rdBinary:
reg->ReadBinaryData(Values->Strings[i],data,sizeof(data));
value += "hex:";
for(int j = 0; j < size; j++)
{
if(j) value += ",";
value += IntToHex(data[j],2);
}
break;
}

str->Add(value);
}

for(int i = 0; i < Keys->Count; i++)
{
AnsiString Subkey = key;
Subkey += "\\";
Subkey += Keys->Strings[i];
SaveSubKey(reg,Subkey,str); //Рекурсивный вызов самой себя
}

delete Keys;
delete Values;
return true;
}

Желаю успехов


 
Seldon   (2003-01-10 23:01) [2]

Попробую



Страницы: 1 вся ветка

Текущий архив: 2003.03.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
9-29688
Jackson
2002-10-12 20:46
2003.03.10
Немного об ошибках


1-29880
Michael Makushev
2003-02-26 10:27
2003.03.10
Парсер


14-30101
Adolf
2003-02-22 13:45
2003.03.10
МЕЧТА ПРОГРАММЕРА


7-30162
pfar
2002-11-27 07:32
2003.03.10
Опрос модема


1-29935
Gaber
2003-02-19 10:17
2003.03.10
Значения взвращаемые при печати, отлавливание нажатия печать в Wo