Здраствуйте!!! Вопрос заключается в копирование дерева рееста ОС и построения этого дерева в приложение, я так полагаю сделать это можно через рекурсию, но чет пока не заладилось. Вот и решил попросить вашей помощи. Вот рекурсивная функция построения дерева данных, которую я написал на C++ Borland, но она не совсем верно работает:
| Код | void __fastcall TViewRegister::GetKey( AnsiString keyPath) {
if (regKey->OpenKey(keyPath, false)) { //заходим в нужный раздел реестра
TStringList *listKey = new TStringList(); regKey->GetKeyNames(listKey); //получаем список ключей нужного раздела (в который зашли) if (listKey->Count != 0) { //если в ветке больше нет ключей, завершаем построение этой ветки в глубину
for (int i = 0; i < listKey->Count; i++) { //перечисляем в открытом ключе все подключи TreeData->Items->AddChild(TreeData->Items->Item[arrCountLevel[i]++], listKey->Strings[i]); //заносим текущий подключ в дерево
WayPathKey = WayPathKey + "\\" + listKey->Strings[i]; //создаем путь до следующего подключа (в глубину) regKey->CloseKey();
GetKey(WayPathKey); //вызываем рекурсивную функцию }
}
delete listKey;
} }
|
был бы благодарен за алгоритм, спасибо! |