![]() |
|
|
Регистрация | << Правила форума >> | 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. |