Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
zvit.doc
Скачиваний:
2
Добавлен:
08.09.2019
Размер:
1.18 Mб
Скачать

2.2. Алгоритм підпрограми запуску моніторингу реєстру

На рис. 4 зображено блок-схему, яка описує алгоритм підпрограми запуску.

Рис. 4 Блок-схема алгоритму підпрограми запуску моніторингу реєстру

Основні події, які відбуваються при натисканні кнопку «Start» - це створення нового об’єкту класу RegistryMonitir та запуск самого моніторингу.

2.3. Алгоритм запуску моніторингу реєстру

На рис. 5 зображено блок-схему алгоритму запуску моніторингу. В цьому алгоритмі реалізовано клас RegistryMonitor, виділено критичні області і запущено потік.

Рис.5 Блок-схема алгоритму запуску моніторингу реєстру

Запуск моніторингу реєстру відбувається так:

  1. Користувач вказує назву гілки реєстру і ключ значення реєстру, натискає кнопку «Start».

  2. Вказаний ключ значення реєстру перевіряється на правильність. Якщо вказаний ключ існує, то відкривається критична область. В іншому випадку виводиться повідомлення про відсутність такого ключа в реєстрі.

  3. Вказаний ключ існує, відкривається критична область, в якій знаходяться потоки моніторингу. Якщо поток моніторигну існує, то він запускається. Якщо поток моніторингу не існує, то спочатку створюється новий клас моніторингу, а потім запускається поток.

2.4. Алгоритм запуску потоку

На рис. 6 зображено блок-схему реалізації алгоритму запуску потоку.В цьому алгоритмі реазовано підпрограми RegOpenKeyEx та RegCloseKeyEx , запущено фільтр, який провіряє на звернення вказані ключі реєстру і повідомляє про всі зміни у вказаних ключах.

Запуск потоку відбувається так:

  1. Запуск підпрограми RegOpenKeyEx і перевірка вказаного ключа. Якщо ключ існує, то фільтр фіксує зміни, що відбулися в значенні реєстру даного ключа.

  2. Якщо фільтр виявив зміни, то з’являється повідомлення Win32Exeption з резутьтатом змін.

  3. Завершення потоку і запуск підпрограми RegCloseKeyEx.

Рис.6 Блок-схема алгоритму запуску потоку

2.5. Алгоритм зупинки моніторингу реєстру

На рис.7 зображено блок-схему алгоритму зупинки моніторингу реєстру.

Рис. 7 Блок-схема алгоритму зупинки моніторингу реєстру

Зупинка моніторингу реєстру відбувається так:

  1. Після того, як користувач натиснув кнопку «Stop», виконується перевірка на проведення маніторингу.

  2. Якщо моніторинг відбувався, то він зупиняється і виводиться повідомлення про зупинку моніторингу.

Розділ 3. Принципи реалізації програми

Реалізація додатку для моніторингу звернень до заданого значення/гілки реєстру в даній курсовій роботі представлена мовою програмування С#. Програма базується на основі бібліотек, класів, функцій, методів та параметрів цієї мови програмування.

3.1. Основні бібліотеки, використані в програмі

System.ComponentModel - надає класи, які використовуються для реалізації під час виконання і поведінки під час розробки компонентів і елементів управління. Цей простір імен включає в себе базові класи та інтерфейси для реалізації атрибутів і перетворювачі типів, зв'язування з джерелами даних, а також ліцензування компонентів [1].

Рис 8. Діаграма використаних компонентів простору імен System.ComponentModel

У таблиці 1 наведено назви та призначення використаних компонентів System.ComponentModel.

Таблиця 1. Опис використаних при реалізації програми компонентів System.ComponentModel

Назва

Призначення

EventHandler

Делегат, що представляє метод, який обробляє подію без даних

Win32Exeption

Клас, який видає виняток про код помилки Win32

Exception

Клас, який представляє помилки, що виникають під час роботи додатку. Наприклад, якщо у потоці не існує більше операції, яка має виконуватися

System.IO - простір імен, містить типи, які дозволяють читання та запис файлів і потоків даних, і типи, які забезпечують основні файли і каталоги підтримки.[1]

Рис.9 Діаграма використаних компонентів простору імен System.ІО

У таблиці 2 наведено назви та призначення використаних компонентів System.ІО.

Таблиця 2. Опис використаних при реалізації програми компонентів System.ІО

Назва

Призначення

ErrorEventHandler

Обробляє подію Error (помилку)

ErrorEventArgs

Надає дані для помилки

System.Threading - простір імен, містить класи та інтерфейси, які дають можливість програмувати в багатопотоковому режимі. На додаток до класів для синхронізації потоків діяльності і доступу до даних ( м'ютекс , монітор , Interlocked , AutoResetEvent , і так далі), цей простір імен включає ThreadPool клас , що дозволяє використовувати пул системи поставляти теми, і таймер клас, який виконує зворотний виклик методів поставки теми потоку.[1]

Рис.10 Діаграма використаних компонентів простору імен System.Threading

У таблиці 3 наведено назви та призначення використаних компонентів System.Threading.

Таблиця 3. Опис використаних при реалізації програми компонентів System.Threading

Назва

Призначення

ThreadStart

Метод, що виконує події класу Thread

Thread

Створює і контролює потік, задає пріоритет

WaitHandler

Інкапсулює пов’язані з ОС об’єкти, які очікують монопольного доступу до загальних ресурсів

ManualResetEvent

Повідомляє очікуючі потоки про те, що відбулася подія. Цей клас не успадковується

System.Runtime.InteropServices - простір імен, надає широкий вибір членів, які підтримують COM-взаємодії і служби виклику некерованого коду.[1]

Рис.11 Діаграма використаних компонентів простору імен System.Runtime.InteropServices

У таблиці 4 наведено назви та призначення використаних компонентів System.Runtime.InteropServices.

Таблиця 4. Опис використаних при реалізації програми компонентів System.Runtime.InteropServices

Назва

Призначення

_thread

Надає System.Threading тему класу в некерований код

GC

Забезпечує можливість доступу до керованого об’єкту з некерованою пам’яттю

Microsoft.Win32 – простір імен, надає два типи класів: ті, які займаються подіями, викликаними операційною системою і ті, які маніпулюють системним реєстром.[1]

Рис.12 Діаграма використаних компонентів простору імен Microsoft.Win32

У таблиці 12 наведено назви та призначення використаних компонентів Microsoft.Win32.

Таблиця 5. Опис використаних при реалізації програми компонентів Microsoft.Win32

Назва

Призначення

RegistryHive

Представляє можливі значення вузла верхнього рівня реєстру

Registry

Методи доступу до пари ключ/значення

RegistryKey

Представляє ключові рівні в реєстрі Windows.

Інкапсуляція реєстру.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]