
- •6.050101 «Комп’ютерні науки»
- •Загальні вимоги до виконання лабораторних робіт
- •Лабораторна робота №1
- •1. Основні теоретичні відомості
- •1.1 Основні поняття
- •1.2 Створення процесу
- •1.3 Створення потоку
- •2. Хід роботи
- •4. Завдання
- •5. Контрольні запитання
- •6.Список використаної літератури
- •Додаток 1
- •Додаток 2
- •Додаток 3
- •Функція CreateProcess створює новий процес.
- •Додаток 4
- •Додаток 5
- •Addr ThreadId – Створює новий потік.
- •Додаток 6
- •Додаток 7
- •Лабораторна робота №2
- •1. Основні теоретичні відомості
- •1.1 Механізми міжпроцесової взаємодії
- •1.2 Механізми синхронізації процесів та потоків
- •1.3 Об’єкти синхронізації
- •1.4 Очікуючі функції
- •1.5 Створення атома
- •1.6 Створення каналу
- •2. Хід роботи
- •4. Завдання
- •5. Контрольні запитання
- •6.Список використаної літератури
- •Додаток 1
- •Додаток 2
- •Додаток 3
- •Додаток 4
- •Додаток 5 Детальний опис функції створення анонімного каналу
- •Додаток 6 Детальний опис функції створення іменованого каналу
- •Додаток 7
- •Додаток 8
- •Додаток 9 Текст програми створення анонімного каналу
- •Додаток 10
- •Лабораторна робота №3
- •1. Основні теоретичні відомості
- •2. Приклад програми створення dll
- •Опис програми My_dll.Asm та файлу лістінга My_dll.Def
- •4. Трансляція та компонування dll Для того, щоб відтранслювати(ml.Exe) та зкомпонувати (link.Exe) даний .Asm код, потрібно використовувати наступні параметри:
- •5. Приклад використання функції з бібліотеки
- •Приклад програми завантаження dll
- •7. Створення файлу лістінгу існуючої бібліотеки
- •8. Приклад передачі даних у функцію бібліотеки Створення динамічно завантажуваної бібліотеки
- •Передача параметру у функцію бібліотеки
- •9. Хід роботи
- •11. Завдання
- •12. Контрольні запитання
- •13. Список використаної літератури
- •Лабораторна робота №4
- •1. Основні теоретичні відомості
- •Параметри функції CreateToolhelp32Snapshot:
- •2. Перегляд процесів
- •3. Перегляд потоків
- •Значення результуючого параметру (регістр еах) таке саме як в Process32First і Process32Next.
- •4. Перегляд хіпів асоційованих з процесом
- •5. Перегляд модулів, які використовує процес
- •6. Керування процесами
- •7. Хід роботи
- •9. Завдання На 75 балів виконати 4 завдання:
- •10. Контрольні запитання
- •11. Список використаної літератури
- •Додаток 1
- •Лабораторна робота №5
- •Основні теоретичні відомості
- •1.1 Основні поняття
- •1.2 Категорії даних
- •1.3 Відкриття і закриття ключів реєстру
- •1.4 Створення підключа у відкритому ключі реєстру
- •1.5 Отримання інформації з ключа реєстру
- •1.6 Перелічення списку значень для заданого ключа реєстру
- •1.7 Виявлення змін в гілці реєстру
- •1.8 Робота з налаштуваннями операційної системи через реєстр
- •2. Хід роботи
- •4. Завдання
- •5. Контрольні запитання
- •6. Список використаної літератури
- •Додаток 1
- •Лабораторна робота №6
- •1. Основні теоретичні відомості
- •Породження процесів
- •1.2 Породження потоків
- •2. Хід роботи
- •4. Індивідуальні завдання
- •5. Контрольні запитання
- •Для нотаток Для нотаток Для нотаток
1.7 Виявлення змін в гілці реєстру
В програмному інтерфейсі WinAPI є зручний механізм для виявлення того чи були зміни в певній гілці реєстру. Цей механізм може працювати в двох режимах: синхронному і асинхронному. Режим задається через формат виклику API функції RegNotifyChangeKeyValue.
Синхронний виклик значно простіший за асинхронний: функція не завершить свого виконання поки не відбудеться зміна. Синхронний виклик здійснюється так:
invoke RegNotifyChangeKeyValue, hkey, bs, \
REG_NOTIFY_CHANGE_LAST_SET, 0, FALSE
де hkey – дескриптор ключа (А14), відкритий за допомогою функції RegOpenKeyEx (A17) з режимом доступу (A17.4), який дорівнює KEY_NOTIFY.
bs – ознака включення дерева всіх підключів при очікуванні зміни. Може приймати значення TRUE (включати) або FALSE (не включати).
REG_NOTIFY_CHANGE_LAST_SET – очікування змін в значеннях ключа. Змінами вважаються додавання або знищення значень або зміна існуючого значення. Є ще інші режими очікування з якими можна ознайомитися в документації (файл допомоги WIN32.HLP, який знаходиться в мережі ІКІТ за адресою \\nt-backup\Predmetu\SPZ\HELP_WIN32APIENG\).
Останні два параметри 0, FALSE необхідні для синхронного виклику.
Асинхронний виклик здійснюється з такими ж значеннями як для синхронного виклику крім двох останніх значень (0 і FALSE), які треба замінити на hEvent (дескриптор об’єкту події, створений функцією CreateEvent) і TRUE. Потім асинхронний виклик вимагає виклику очікуючої функції (див. лаб. 5).
1.8 Робота з налаштуваннями операційної системи через реєстр
Створення програм для зміни або відображення налаштувань ОС не вимагає безпосереднього відкриття ключів реєстру і редагування їх значень. Для цього використовуються функції SystemParametersInfo і SetSysColors.
Опишемо формат виклику функції SystemParametersInfo:
invoke SystemParametersInfo, uiAction, uiParam, addr pvParam, fWinIni
uiAction – Визначає один з можливих параметрів операційної системи, який треба змінити або отримати. Перелічимо декілька з доступних параметрів (для повного списку параметрів див. файл допомоги WIN32.HLP):
Значення |
Опис |
SPI_GETACCESSTIMEOUT
|
Для отримання інформації про період тайм-ауту, який пов'язаний із спеціальними можливостями (accessibility features). Аргумент pvParam повинен вказувати на об'єкт структури ACCESSTIMEOUT, в якому зберігатиметься ця інформація. Розмір структури в байтах sizeof(ACCESSTIMEOUT) потрібно встановити в полі структури cbSize та в аргументі uiParam (див. оголошення ф-ції). |
SPI_GETACTIVEWINDOWTRACKING
|
Windows NT 5.0 і пізніші, Windows 98: Визначає чи включена функція активації вікна на якому стоїть стрілочка миші. Аргумент pvParam має вказувати на змінну, яка отримуватиме значення TRUE, якщо включена або FALSE, якщо виключена. |
SPI_SETDESKWALLPAPER |
Встановлює заставку робочого стола. Аргумент pvParam повинен вказувати на стрічку завершену нулем, яка містить шлях і назву графічного файлу заставки. |
uiParam, pvParam – ці аргументи залежать від вибраного параметру операційної системи і режиму роботи (uiAction).
fWinIni – аргумент який визначає чи зберігатиметься зміна параметрів операційної системи після завершення сеансу роботи користувача. Може приймати два значення: SPIF_UPDATEINIFILE (зберігати) або SPIF_SENDCHANGE (не зберігати).
Функція SetSysColors призначена для зміни кольорів оформлення ОС Windows. Опишемо формат виклику функції SetSysColors:
invoke SetSysColors, n, addr elem, addr colors
n Кількість елементів в масивах на які вказують два наступних аргументи.
addr elem Вказівник на масив елементів оформлення Windows (тип елементів dd або DWORD); за переліком доступних елементів оформлення див. Help по функціях API – файл WIN32.HLP.
addr colors Вказівник на масив кольорів в форматі 24 розрядного ЧЗС (24 bit RGB) – тип елементів масиву dd або DWORD.