![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Нужно узнать имя первого подраздела в реестре. т.к. у каждого юзера это имя уникальное, знать его точно не могу.
Слышал есть функция RegEnumKey но ничего с ней непонятно ![]() Код: PHP код:
|
|
#2
|
||||
|
||||
|
когда то делал так лет 7 назад:
Код:
var
Reg: TRegistry;
Keys: TStringList;
begin
Reg := TRegistry.Create;
Keys := TStringList.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('\SYSTEM\CurrentControlSet\Enum\PCI\',False);
Reg.GetKeyNames(Keys);
Reg.CloseKey;
ShowMessage(Keys[0]); //первый элемент
Keys.Free;
end;помоему так... Последний раз редактировалось Ultras, 16.02.2010 в 01:05. |
|
#3
|
||||
|
||||
|
Да я тоже когда то получал список так.
Только столкнулся с небольшой ошибкой с файле Registry.pas ( точнее приминяемая АПИшная функция RegQueryInfoKey иногда выдавала MaxSubKeyLen на 1-2 байта меньше ) из-за которой список некоторые имена подключей выдавал неправильные. Недавно посмотрел в Delphi 2010 тоже не исправили. После небольшой правки, все стало работать. Файл прилагаю, бросать в папку с проектом. |
|
#4
|
||||
|
||||
|
Ultras
При компиляции пишет, List index out of bonds (0) судя по всему где-то есть опечатка с стринглистом. |
|
#5
|
||||
|
||||
|
Похоже список у тебя пустой или ключ не открылся.
Попробуй Код:
procedure TForm1.FormCreate(Sender: TObject);
var
i, k: Integer;
DReg: TRegistry;
DestSubKeys: TStringList;
begin
DReg := TRegistry.Create(KEY_READ);
try
DReg.RootKey := HKEY_LOCAL_MACHINE;
DestSubKeys := TStringList.Create;
try
if DReg.OpenKeyReadOnly('полный путь ключа') then
begin
DReg.GetKeyNames(DestSubKeys);
if DestSubKeys.Count = 0 then
ShowMessage('Список подключей пуст')
else
for i := 0 to DestSubKeys.Count - 1 do
Memo1.Lines.Add(DestSubKeys[i]);
end
else
ShowMessage('Не удалось открыть ключ');
finally
DestSubKeys.Free;
end;
finally
DReg.Free;
end;
end; |
|
#6
|
||||
|
||||
|
T-dayne, если так и не смогли разобраться, можете стукнуть в аську 815979 или 418048483, помогу, чем смогу
![]() |
|
#7
|
||||
|
||||
|
s0Creator Отлично, заработало. спасибо
Ultras Вам большое спасибо за готовность помочь. |
|
#8
|
||||
|
||||
|
парни, снова выручайте.
PHP код:
|
|
#9
|
||||
|
||||
|
У Тебя 2 раза DestSubKeys.Free;
В место первого надо DestSubKeys.Clear; |
|
#10
|
||||
|
||||
|
И этого я совсем не понял
'SYSTEMCurrentControlSetEnumPCI'+destsubkeys[0] А где '\' ? Кстати подключ, вроде можно открывать просто DReg.OpenKeyReadOnly(destsubkeys[0]); Последний раз редактировалось s0Creator, 16.02.2010 в 23:21. |