Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 008

/ вопрос открыт /

Здравствуйте! Почему когда я далаю прогом по всему реестру (просматриваю все ключи), в один момент программа просто вылетает и всё... причём никаких ошибок нет! Просто разрушается и всё. Подобное происходит и на других машинах. Происходит это именно тогда, когда путь достигает HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Class
. И , при чём, постоянно на одном и том же ключе, но если этот ключ удалить, то такая же фигня произойдёт на следующем... , и это случается только в HKEY_LOCAL_MACHINE , в остальных разделах всё нормально. Вот такая запарка!

Вот моя процедура:

Приложение:
  1. procedure FullRegScan(HK: HKEY; RegPath: string);
  2. var Reg: TRegistry;
  3. i: Integer;
  4. l, val: TStrings;
  5. Root, s: string;
  6. begin
  7. Reg:= TRegistry.Create(KEY_ALL_ACCESS);
  8. case HK of
  9. HKEY_CLASSES_ROOT : Root:= 'HKEY_CLASSES_ROOT';
  10. HKEY_CURRENT_USER : Root:= 'HKEY_CURRENT_USER';
  11. HKEY_LOCAL_MACHINE : Root:= 'HKEY_LOCAL_MACHINE';
  12. HKEY_USERS : Root:= 'HKEY_USERS';
  13. HKEY_CURRENT_CONFIG : Root:= 'HKEY_CURRENT_CONFIG';
  14. end;
  15. Reg.RootKey:= HK;
  16. Reg.OpenKeyReadOnly(RegPath);
  17. val:= TStringList.Create;
  18. Reg.GetValueNames(val);
  19. l:= TStringList.Create;
  20. Reg.GetKeyNames(l);
  21. /////////////////////////////////////////
  22. s:= Reg.CurrentPath;
  23. /////////////////////////////////////////
  24. Reg.CloseKey;
  25. for i:= 0 to l.Count - 1 do
  26. begin
  27. if Reg.OpenKeyReadOnly(s + '\' + l.Strings[i]) then
  28. begin
  29. Form1.lbl1.Caption:= '[' + Root + '\' + Reg.CurrentPath + ']';
  30. try
  31. FullRegScan(HK , Reg.CurrentPath);
  32. except
  33. end;
  34. end;
  35. Reg.CloseKey;
  36. Application.ProcessMessages;
  37. end;
  38. l.Free;
  39. val.Free;
  40. Reg.Free;
  41. end;


eclipse Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: eclipse (статус: Посетитель)
Вопрос отправлен: 17 марта 2012, 08:02
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 17 марта 2012, 16:10; участников в обсуждении: 2.
eclipse

eclipse (статус: Посетитель), 17 марта 2012, 08:04 [#1]:

А, вот ещё, инициализирую эту процедуру так: - FullRegScan(HKEY_LOCAL_MACHINE, EmptyStr);
Блин забыл... вылетает ошибка stack overflow.
bugmenot

bugmenot (статус: 3-ий класс), 17 марта 2012, 16:10 [#2]:

О, форматирование поправилось, автоматика!
Хотя подозреваю, что это был Ерёмин :-)
виконання програми розпочинається з того самого мiсця, де призупинилося.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:39
Выполнено за 0.02 сек.