![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 29.05.2011
Сообщений: 24
|
![]()
Пишу курсовую редактор реестра. У меня всё работает, но только для одной ветви реестра. Мне необходима работа со всеми ветвями реестра.
Вот код программы: procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode); Var s,tip,str:string; KeyInfo: TRegKeyInfo; ValueNames: TStringList; //имя параметра i: integer; DataType: TRegDataType; begin Reg.RootKey:=HKEY_CURRENT_USER;//открываем раздел для работы с ним ListView1.Items.Clear; //очищаем ListView s:=GetFullNodeName(Node); //вызов функции для получения имени подраздела if not Reg.OpenKeyReadOnly(s) then Exit;//если больше нет катологов, то выходим из процедуры Reg.GetKeyInfo(KeyInfo);//получаем сведения о подразделе if KeyInfo.NumValues<=0 then Exit;//если нет параметров, то выходим из процедуры ValueNames:=TStringList.Create; Reg.GetValueNames(ValueNames);//получаем сведения о параметре for i:=0 to ValueNames.Count-1 do with ListView1.Items.Add do begin Caption:=ValueNames[i]; DataType:=Reg.GetDataType(ValueName s[i]); Case DataType of rdString: s :=Reg.ReadString(ValueNames[i]); rdInteger: s :='0x'+IntToHex(Reg.ReadInteger(Val ueNames[i]),8); rdExpandString: s:=Reg.ReadString(ValueNames[i]); else s:='неизвестный параметр'; end; SubItems.Add(s); Case DataType of rdString: tip :='Строковый'; rdInteger: tip :='DWORD'; rdExpandString: tip:='Расширенная строка'; rdBinary: tip :='Бинарный'; else tip:='неизвестный тип'; end; SubItems.Add(tip); ImageIndex:=1; end; ValueNames.Free; end; строка Reg.RootKey:=HKEY_CURRENT_USER открывает для работы только эту ветвь реестра. Как при помощи Case в зависимости от выбранного в TreeView самого верхнего раздела, работать с определённой ветвью реестра Пробовал вставлять такой код: Var ..... str: string; .... begin str: TreeView1.TopItem.Text; Case Str of 'HKEY_CURRENT_USER': Reg.RootKey:=HKEY_CURRENT_USER; 'HKEY_USERS': Reg.RootKey:=HKEY_USERS; end; .... Не работает!!! Помогите пожалуйста закончить курсовой |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с реестром? | angelada | Помощь студентам | 4 | 19.01.2011 12:12 |
работа с реестром | alex0097 | Общие вопросы Delphi | 1 | 13.07.2010 10:20 |
работа с реестром | Sharp_eye | Помощь студентам | 8 | 21.06.2009 00:05 |
Работа с реестром | Pr1meEX | Общие вопросы Delphi | 0 | 17.06.2009 00:01 |
Работа с реестром. | eL1tE | Общие вопросы Delphi | 5 | 16.04.2007 15:48 |