|
Вопрос # 5 082/ вопрос решён / |
|
Приветствую, уважаемые эксперты! Подскажите как с помощью Tregistry получить полный доступ ко всем ключам реестра. Есть несколько проблем: 1- при открытии определённых ключей мне файервол не даёт считать данные оттуда. 2 - не все ключи открываются даже при отключенном фаерволе.
Пробовал и через OpenKeyReadOnly... нифига не помогает.
 |
Вопрос задал: eclipse (статус: Посетитель)
Вопрос отправлен: 12 марта 2011, 06:19
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 1 июля 2011, 13:47; участников в обсуждении: 1.
12 марта 2011, 07:01: Статус вопроса изменён на решённый (изменил автор вопроса — eclipse): Сам разобрался... можно удалить.
|
eclipse (статус: Посетитель), 1 июля 2011, 13:47 [#1]:
Нашёл решение в этом алгоритме, он конечно намного отличается от того что мне нужно было но сама основа вот:
uses
Registry;
procedure TForm1.Button1Click(Sender: TObject);
var
indent: Integer;
procedure EnumAllKeys(hkey: THandle);
var
l: TStringList;
n: Integer;
begin
Inc(indent, 2);
with TRegistry.Create do
try
RootKey := hkey;
OpenKey(EmptyStr, False);
l := TStringList.Create;
try
GetKeynames(l);
CloseKey;
for n := 0 to l.Count - 1 do
begin
memo1.Lines.Add(StringOfChar(' ', indent) + l[n]);
if OpenKey(l[n], False) then
begin
EnumAllKeys(CurrentKey);
CloseKey;
end;
end;
finally
l.Free
end;
finally
Free;
end;
Dec(indent, 2);
end;
begin
Memo1.Clear;
Memo1.Lines.Add('Keys under HKEY_CURRENT_USER');
indent := 0;
Memo1.Lines.BeginUpdate;
try
EnumAllKEys(HKEY_CURRENT_USER);
finally
Memo1.Lines.EndUpdate;
end;
end;
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|