Использование компонента Registry — КиберПедия 

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Использование компонента Registry

2017-11-17 251
Использование компонента Registry 0.00 из 5.00 0 оценок
Заказать работу

Пример1. Приведенный фрагмент по введенному в окне редактирования пути (он может быть пустым) к разделу реестра (расположенного в HKEY_LOCAL_MACHINE\SOFTWARE) дает возможность получить список его подразделов, а для подраздела, имеющего список пар параметр-значение - список имен параметров. Не забудьте добавить registry в uses.

 

procedure TForm1.Button1Click(Sender: TObject);

var reg: Tregistry; res: boolean; strs: TstringList; i: integer;

begin

ListBox1.Clear; ListBox2.Clear;

reg:=Tregistry.Create; strs:=TstringList.Create;

reg.RootKey:=HKEY_LOCAL_MACHINE;

reg.OpenKey('SOFTWARE\'+Edit1.Text,False);

if res then label1.caption:='ok';

// получение списка имен ключей (подразделов) раздела, путь которого указан строкой

// SOFTWARE\ и строкой, введенной в окне редактирования Edit1

reg.GetKeyNames(strs);

label2.Caption:=inttostr(strs.count);

for i:=1 to strs.count-1 do listbox1.Items.add(strs.strings[i]);

// получить имена параметров данного раздела

reg.GetValueNames(strs);

label2.Caption:=inttostr(strs.count);

for i:=1 to strs.count do listbox2.Items.add(strs.strings[i-1]);

reg.CloseKey;

end;

Пример 2. Поиск в разделе реестра заданного имени подраздела.

Const

RtK: array[1..6] of HKEY = (HKEY_CLASSES_ROOT, HKEY_CURRENT_USER,

HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG, HKEY_DYN_DATA);

RKS: array[1..6] of String = ('HKEY_CLASSES_ROOT', 'HKEY_CURRENT_USER',

'HKEY_LOCAL_MACHINE', 'HKEY_USERS', 'HKEY_CURRENT_CONFIG', 'HKEY_DYN_DATA');

function SearchKey(MainKey:word; // номер одного из 6 разделов реестра

SubKey:String; // подраздел, с которого начинается поиск

KeyF:String // имя подраздела, которое требуется найти

):string;

var I:dword; value:TRegKeyInfo; Strs:TStringList; path: string;

begin

Strs:=TStringList.create;

reg.RootKey:= Rtk[MainKey];

// задаем подраздел, в котором необходимо искать

reg.OpenKey(SubKey,false);

if reg.GetKeyInfo(value) then

Begin // при отсутствии подраздела – выход

if value.NumSubKeys=0 then exit;

reestr.GetKeyNames(Strs);

reestr.CloseKey;

For I:= 1 to Value.NumSubKeys do

Begin // получение пути к разделам

if subkey='\' then path:='\'+Strs.Strings[i-1] else path:=subkey+'\'+Strs.Strings[i-1];

if Strs.Strings[i-1]=KeyF then Listbox1.Items.add(Rks[MainKey]+Path); // запись результата

// вызов SearchKey (); - фактические параметры указать самостоятельно, исходя из логики процедуры поиска

End;

reg.CloseKey;

end;

end;

 

ВЫПОЛНЕНИЕ РАБОТЫ

Список заданий для всех бригад

  1. Написать приложение для создания в разделе HKEY_LOCAL_MACHINE\SOFTWARE подраздела, имя которого задается путем ввода с клавиатуры и записи в созданный раздел пары параметр-значение. Имя параметра и значение должны вводиться с клавиатуры.
  2. Добавить возможность редактирования с помощью разработанного приложения значений пар параметр-значение_строкового типа и проверить правильность выполнения редактирования на созданной в п.1 паре.
  3. Вывести список имен подразделов раздела, имя которого задается вводом с клавиатуры.
  4. Вывести список имен параметров пар заданного раздела.
  5. Вывести список типов значений параметров пар заданного раздела.

Примечание. п.1-п.5 выполнить с использованием функций Win32 API.

  1. Проверить работу фрагментов программ, приведенных в примерах 1 и 2.

Список индивидуальных заданий

1. Разработать приложение для нахождения количества подразделов в каждом из 6 основных разделов реестра и самого длинного пути к подразделу. Данное приложение должно запускаться на данном ПК не более 5 раз (информацию о количестве запусков хранить в реестре).

Бригады 1, 3, 6

2. Разработать приложение для поиска в заданном разделе реестра параметра по его имени. Результат поиска – список путей к подразделам реестра, в которых хранится параметр с заданным именем. Дать предложения по повышению скорости работы приложения за счет использования дихотомического поиска.

Бригады 2, 4, 5

3. Разработать приложение для поиска в заданном разделе реестра всех параметров строкового типа, длина значений которых не превышает K (значения K и раздел реестра должны задаваться вводом с клавиатуры).

Бригады 7, 8, 9, 10

 

 

ОТЧЕТ О РАБОТЕ должен содержать:

1 Описание постановки задач, решенных бригадой, алгоритмов решения задач и его программной реализации.

3. Полученные результаты.

Литература

 

Чен В., Берри В. Реестр Windows Nt для профессионалов. - СПб: "Издательство Питер", 1999.

 

 

Лабораторная работа № 6


Поделиться с друзьями:

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.