|
Вопрос # 6 008/ вопрос открыт / |
|
Здравствуйте! Почему когда я далаю прогом по всему реестру (просматриваю все ключи), в один момент программа просто вылетает и всё... причём никаких ошибок нет! Просто разрушается и всё. Подобное происходит и на других машинах. Происходит это именно тогда, когда путь достигает HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Class
. И , при чём, постоянно на одном и том же ключе, но если этот ключ удалить, то такая же фигня произойдёт на следующем... , и это случается только в HKEY_LOCAL_MACHINE , в остальных разделах всё нормально. Вот такая запарка!
Вот моя процедура:
Приложение: Переключить в обычный режим- procedure FullRegScan(HK: HKEY; RegPath: string);
- var Reg: TRegistry;
- i: Integer;
- l, val: TStrings;
- Root, s: string;
- begin
- Reg:= TRegistry.Create(KEY_ALL_ACCESS);
- case HK of
- HKEY_CLASSES_ROOT : Root:= 'HKEY_CLASSES_ROOT';
- HKEY_CURRENT_USER : Root:= 'HKEY_CURRENT_USER';
- HKEY_LOCAL_MACHINE : Root:= 'HKEY_LOCAL_MACHINE';
- HKEY_USERS : Root:= 'HKEY_USERS';
- HKEY_CURRENT_CONFIG : Root:= 'HKEY_CURRENT_CONFIG';
- end;
- Reg.RootKey:= HK;
- Reg.OpenKeyReadOnly(RegPath);
- val:= TStringList.Create;
- Reg.GetValueNames(val);
- l:= TStringList.Create;
- Reg.GetKeyNames(l);
- /////////////////////////////////////////
- s:= Reg.CurrentPath;
- /////////////////////////////////////////
- Reg.CloseKey;
- for i:= 0 to l.Count - 1 do
- begin
- if Reg.OpenKeyReadOnly(s + '\' + l.Strings[i]) then
- begin
- Form1.lbl1.Caption:= '[' + Root + '\' + Reg.CurrentPath + ']';
- try
- FullRegScan(HK , Reg.CurrentPath);
- except
- end;
- end;
- Reg.CloseKey;
- Application.ProcessMessages;
- end;
- l.Free;
- val.Free;
- Reg.Free;
- end;
 |
Вопрос задал: eclipse (статус: Посетитель)
Вопрос отправлен: 17 марта 2012, 08:02
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 17 марта 2012, 16:10; участников в обсуждении: 2.
|
eclipse (статус: Посетитель), 17 марта 2012, 08:04 [#1]:
А, вот ещё, инициализирую эту процедуру так: - FullRegScan(HKEY_LOCAL_MACHINE, EmptyStr);
Блин забыл... вылетает ошибка stack overflow.
|
|
bugmenot (статус: 3-ий класс), 17 марта 2012, 16:10 [#2]:
О, форматирование поправилось, автоматика!
Хотя подозреваю, что это был Ерёмин
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|