Создание программы Tweaker

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?дсистемы, а также описывать их внутреннюю структуру и типы отношений.

Диаграмма классов представляет собой граф, вершинами которого являются элементы типа классификатор, связанные различными типами структурных отношений. Диаграмма классов может также содержать интерфейсы, пакеты, отношения и даже отдельные экземпляры, такие как объекты и связи. [4]

Рисунок 2.2 - Диаграмма классов

2.3 Реестр WINDOWS

Реестр Windows или системный реестр (англ. Windows Registry) - иерархически построенная база данных параметров и настроек в большинстве операционных систем Microsoft Windows.

Реестр содержит информацию и настройки для аппаратного обеспечения, программного обеспечения, профилей пользователей, предустановки. Большинство изменений в Панели управления, ассоциации файлов, системные политики, список установленного ПО фиксируются в реестре.

Реестр Windows был введён для упорядочения информации, хранившейся до этого во множестве INI-файлов, которые использовались для хранения настроек до того, как появился реестр. [5]

2.3.1 Модель реестра

Реестр - это дерево подкаталогов и файлов, он содержит большое множество подкаталогов и ключей, но у него довольно простая структура.

Реестр имеет основные каталоги HKEY, которые содержат в себе подкаталоги. (рисунок 2.3)

Рисунок 2.3 Модель реестра Windows

Адрес к ключу можно представить в обычной форме:_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Polices\\NoRun.key

Выше приведен пример, который наглядно показывает структуру реестра.

Сначала идёт основной корневой каталог, затем подкаталоги и в конце ключ.

Программа изначально выполняет запрос к Windows и только потом Windows даёт доступ к реестру и его ключам.

Получив доступ к реестру, программа делает запросы:

) Получение определённого ключа. Когда программа выполняет одну из опций, она делает обращение к заранее известному ключу, после чего можно получить значение содержащуюся в ключе.

) Изменение ключа. При необходимости изменить ключ - делается запрос на получение нужного ключа и снятие флага "только чтение", после чего этот ключ можно изменить.

) Создание ключа. Когда программе необходимо сохранить свои настройки или реестр не содержит нужных ключей, они создаются с параметрам "default". Программа делает запрос на получение нужного ключа, если таковой в реестре не находится, то он создаётся, затем снова идёт проверка на наличие ключа, если таковой найден, то реестр возвращает значение программе, либо переходит к запросу "изменение ключа". (рисунок 2.4)

Рисунок 2.4 - Способ обращения программы к ключам реестра

2.3.2 Важность реестра в программе

Программа очень сильно зависит от реестра, так как выполняемые изменения параметров системы хранятся в ключах реестра. Без реестра - программа является пустой оболочкой, не способной управлять параметрами Windows. Так же программа сохраняет все свои параметры и настройки в ключах реестра. Программа содержит конфигурационные файлы типа "*.ini", но они содержат лишь информацию для ключей реестра, соответственно без реестра файлы конфигураций бесполезны.

Делая заключение можно сказать, что реестр - это и есть параметры Windows, без которых он не будет функционировать, а данная программа является более простой системой управления реестром. [5]

2.3.3 Использование реестра в программе

Приложение содержит в себе все необходимые ключи реестра. Она запрашивает доступ к реестру, ищет необходимый ключ и взаимодействует с ним (удаление, создание, изменение информации ключа).

Рассмотрим детальнее процесс взаимодействия с реестром:

При изменении параметров в программе, идёт поиск идентификатора на нужный ключ, затем найденный ключ записывается в .ini файл (для последующего использования и переноса в лог), делается запрос в реестр, затем идёт поиск необходимого ключа. Если ключ не найден (реестр Windows, не содержит некоторые ключи по умолчанию и их необходимо создать, для дальнейшего конфигурирования ОС), то программа создаёт ключ из своей базы ключей, затем идёт непосредственное изменение ключа и запись изменение в лог файл. [1]

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

Свои настройки программа так же сохраняет в реестре. При переносе настроек на другой компьютер[1]

3 Разработка алгоритмов

3.1 Алгоритм взаимодействия с реестром

Стоит понимать, что работа с реестром, опасное занятие. Если случайно изменить важный параметр или значение, то ОС может выйти из строя, по этому, необходим точный алгоритм для поиска и изменения ключей реестра.

Алгоритм взаимодействия с реестром содержит в себе три части:

.Алгоритм поиска и открытия ключа.

2.Алгоритм чтения/записи ключа.

.Алгоритм удаления ключа.

3.2 Алгоритм поиска и открытия ключа

Предположим, был изменён какой либо параметр, он берёт из за ранее готового списка путь к ключу, находит его и затем сравнивает его с вторым списком - явных ключей. Если найденный ключ совпадает с двумя списками, затем он открывается. Если же ключа или подкаталога не существует, то путём сравнения двух списков создаётся подкаталоги и собственно ключ с параметром по умолчанию. (рисунок 3.1) [7]

&