Курсовая работа (т): Реестр Widows 7

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Писати REG-файл можна в будь-якому текстовому редакторі, наприклад в Блокноті. Створіть новий текстовий документ, наберіть наведений вище код (рис. 2.1) і збережіть файл з розширенням REG. Якщо ви хочете потренуватися в створенні подібних файлів, то простіше згенерувати їх за допомогою експорту з редактора реєстру, а потім внести зміни в Блокноті.

Рисунок 2.1 - Редагування тексту файлу в текстовому редакторі

Крім редактора реєстру, що має графічний інтерфейс, у складі Windows 7 є також утиліта командного рядка REG.EXE, призначена для досвідчених користувачів. З її допомогою можна створювати різні сценарії для виконання різних завдань, пов’язаних з експортом та імпортом розділів реєстру

Для експорту параметрів реєстру за допомогою командного рядка використовується команда REG EXPORT, що володіє наступним синтаксисом: REG EXPORT< ім’я_розділу> <ім’я файлу> [/ y]

Параметри:

<ім’я_розділу> - повний шлях до розділу реєстру у вигляді: КОРІНЬ \ Підрозділ (тільки для локального комп’ютера). В якості кореня використовуються значення HKLM-|-HKCU-|-HKCR-|-HKU-|-HKCC. В якості підрозділу використовується повний шлях до розділу реєстру в обраному кореневому розділі;

<ім’я_файлу> - ім’я файлу на диску, в якому будуть записані експортовані запису;

/у - необов’язковий параметр. З його допомогою можна виводити вікно з попередженням про те, що на диску вже існує файл з таким же ім’ям.

За допомогою команди REG ADD можна додати параметри до реєстру. Таким чином, можна включити команди для додавання параметрів до складу сценарію, не вдаючись до допомоги REG-файлів.

Синтаксис:ADD<ім’я_розділу > [/v <ім’я_параметра> | / ve] [/t <тип>] [/s < роздільник >] [/d <дані>] [/f]

Параметри:

ім’я_розділу - [\\<комп’ютер>\]<розділ>

<комп’ютер> - ім’я віддаленого комп’ютера;

/v ім’я параметра, який додається в обраний розділ;

/ve - додавання параметра з порожнім ім’ям (за замовчуванням) в цей розділ;

/t - тип даних. Може використовуватися одне з наступних значень: REG_SZ | REG_MULTI_SZ | REG_EXPAND_SZ | REG_DWORD | REG_QWORD | REG_BINARY | REG_NONE;

/f - виконання заміни існуючих записів без запиту підтвердження.


3. Розробка програмного додатку зчитування даних з реєстру ОС Windows

.1 Вибір середовища програмування

Мова Асемблер серед великої кількості мов програмування актуальна через свою ефективність і точність.

Асемблері програми можуть бути дуже ефективними. З програмістів, з рівними навиками і здібностями, що працює на мові Асемблера створить програму більш компактну і швидкодіючу, ніж така ж програма, написана мовою високого рівня. Це так практично для всіх невеликих або середніх програм. На жаль, в міру зростання розмірів, програми на мові Асемблера втрачають частину своїх переваг. Мова Асемблера вимагає планування кожної дії комп'ютера. У невеликих програмах це дозволяє оптимізувати роботу програми з апаратними засобами. У великих же програмах величезна кількість деталей може перешкодити ефективно працювати над самою програмою, навіть якщо окремі компоненти програми виявляться дуже непоганими. Безумовно, програмування на мові Асемблера відповідає потребам не кожної програми.

Програми на мові Асемблера дуже точні. Оскільки ця мова дозволяє програмістові безпосередньо працювати зі всім апаратним забезпеченням, програма може робити те, що недоступно ніякий інший програмі. Безсумнівно, що в програмуванні пристроїв введення-виведення, де потрібен контроль над окремими розрядами регістрів пристрою, програмування на мові Асемблера - єдиний відповідний вибір

Ефективність і точність мови Асемблера дають певні переваги. Але його деталізованість створює і деякі проблеми.

Програмісти фірми IBM писали з використанням процедур Асемблера всі програми управління пристроями введення-виведення для IBM PC. Для керування пристроями введення-виведення і системою переривань, потрібна була та точність мови Асемблера, яку не може забезпечити ні одну іншу мову програмування. Аналогічно, на мові Асемблера у фірмі IBM писалися процедури діагностики, які повинні перевіряти кожну деталь апаратури.

Мова Асемблера необхідний також і в тих випадках, коли головними є робочі характеристики програми. Це може бути час виконання або кінцевий розмір програми.

І останнє, при програмуванні на мові Асемблера і тільки через написання програм на цьому рівні деталізації можна зрозуміти як працює машина на самому нижньому рівні.

Найбільш популярними на сьогоднішній день є пакети Turbo Assembler (TASM) фірми Borland, Macro Assembler for Windows32 (MASM32), створений Hutch (на основі старого MASM фірми Microsoft), а також Flat Assembler (FASM), і Netwide Assembler (NASM), що розвивається командою NASM Development Team. Всі ці асемблери надають досить широкі можливості для програміста. На них можна писати програми як під DOS, так і під Windows.

Існує також безліч інших видів асемблера, число яких зростає. Наприклад: CodeX Assembler, Gema Assembler, Light Macro Assembler (LASM), Lazy Assembler (LZASM), Table Driven Assembler (TDASM), NewBasic + + Assembler (NBASM), TMA Macro Assembler і ін.

RadASM - безкоштовна середовище розробки програмного забезпечення для ОС Windows і не тільки, спочатку призначена для написання програм мовою асемблера.

Має гнучку систему файлів налаштувань, завдяки чому може бути використана як середовище розробки програмного забезпечення на високорівневих мовах, а також документів, заснованих на мовах розмітки.Studio - це інтегроване середовище для розробки (IDE) програм на мові асемблера в ОС Windows. FreeWare безпосередньо підтримуються асемблери MASM та POASM, що дозволяє розробляти програми для DOS та Windows, але за допомогою надбудови FASM є можливість використовувати асемблер FASM або будь-який інший, навіть такі, що будують програми для інших операційних систем та процесорів, а також є можливість використовувати емулятори для запуска чи відлагоджування програм.

Для реалізації програмного додатку було обрано мову програмування Assembler а саме середовище програмування MASM32 через свою точність і компактність.Macro Assembler (MASM) - асемблер для процесорів сімейства x86. Спочатку був зроблений компанією Microsoft для написання програм в операційній сістемеMS - DOS і був протягом деякого часу найпопулярнішим асемблером, доступним для неї. Це підтримувало широке розмаїття макросредств і структурованість програмних ідіом, включаючи конструкції високого рівня для повторів, викликів процедур і чергувань (тому MASM - асемблер високого рівня). Пізніше була додана можливість написання програм для Windows. MASM - один з небагатьох інструментів розробки Microsoft, для яких не було окремих 16 - і 32 - бітових версій.

3.2 Опис алгоритму програми

Принцип роботи програмного додатку приведений на рисунку 3.1

Рисунок 3.1 - Блок схема програмного додатку

В початковому блоці описуються директива. 386 і підключаються бібліотеки ink та lib..386 - Це директива асемблера, що визначає набір інструкцій процесора, які можуть бути використані в програмі. За замовчуванням транслятор вважає, що програма пишеться для процесора 8086 і співпроцесора 8087. Для додатків win32 необхідно вказувати або. 386, або вище (486, 586, 686) - залежно від того, чи збираємося ми використовувати можливості, надані процесорами (сопроцессорами) наступних поколінь чи ні.flat, stdcall. Перший параметр - це модель пам'яті. Під Windows же у нас є одна -єдина модель пам'яті - flat.

Другий же параметр - stdcall - вказує на так звану угоду про виклик процедур. При програмуванні під win32 на макроассемблере потрібно використовувати угоду stdcall.- директива ассемблеру включити в текст програми, текст, що зберігається у вказаному файлі.- ця директива передається компонувальнику і повідомляє, що наша програма має бути слінковать з вказаною бібліотекою. Бібліотека являє собою деяку кількість готових до вживання процедур.

В наступному блоці задаються початкові значення програми Це відбувається в секції «.data».- розділ, де оголошуються змінні вже мають якесь то значення, (ініціалізовані дані).

Секція.code - розділ, де розташований код програми, тобто послідовність інструкцій, які повинен виконати комп'ютер. Тут викликається одна з функцій Windows API - RegOpenKeyEx, яка відкриває вказаний ключ.

Далі йде перевірка чи створений такий ключ:

Якщо так, то викликаємо функцію RegQueryInfoKey, яка дає інформацію про ключ реєстру. Далі використовуємо функцію RegQueryValueEx за допомогою якої повертаємо тип і дані вказаного значення. Використовуємо функцію lstrcmp за допомогою якої порівняємо зчитувані значення szBuffer=<szRun. Викликаємо функцію MessageBox, яка виводить повідомлення про перший запуск програми. Закриваємо розділ ключа за допомогою функції RegCloseKey. Викликавши функцію Exitprocess, яка закінчує роботу програми;

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

Потім використовуємо перевірку, щоб переконатися, що не буде помилки. Викликаємо функцію RegSetValueEx, яка встановлює дані в полі значення ключа. Закриваємо розділ ключа за допомогою функції RegCloseKey. Викликавши функцію Exitprocess закінчуємо роботу програми.

3.3 Опис функції програмного додатку

Функція RegOpenKeyEx відкриває вказаний ключ.

Функція RegQueryInfoKey отримує інформацію про зазначений ключі реєстру.

Функція RegQueryValueEx повертає тип і дані вказаного значення по імені, що асоціюється з відкритим ключем реєстру.

Функція RegCreateKey створює зазначений ключ. Якщо ключ вже існує в реєстрі, то функція відкриває його.

Функція RegSetValueEx встановлює дані в поле значення відкритого ключа реєстру. Вона, також, може встановлювати додаткові значення і типи інформації для зазначеного ключа.

Функція RegCloseKey звільняє дескриптор зазначеного ключа.

3.4 Інструкція користувача

Робота програмного додатку приведена на рисунку 3.2 і 3.3

Вікно програмного додатку після першого запуску

Рисунок 3.2 - Перший запуск програми

Вікно програмного додатку після другого запуску

Рисунок 3.3 - Вікно після другого запуску програми

Системні вимоги для програмного додатку мінімальні, тому сучасних потужностей комп’ютерів цілком достатньо для роботи програмного додатку.

Висновок

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

отримувати інформацію про ключ реєстру;

повертати тип та дані вказаного значення по імені;

встановлювати дані в полі відкритого ключа реєстру;

створювати зазначений ключ;

звільняти дескриптор зазначеного ключа.


Список використаних джерел

1. Александр Климов. Реестр Windows 7. - Санкт-Петербург: Питер, 2010

2. Виктор Ромашов. Реестр Windows 7 на 100%. - СПб.: Питер, 2010

. Галисеев.Г.В Ассемблер IBM PC. - М.:Издательский дом «Вильямс», 2004

. Ольга Кокорева. Реестр Windows 7. - СПб.: БХВ-Петербург, 2010.

5. Олег Калашников. Ассемблер это просто. 2-е изд. - СПб.: БХВ-Петербург, 2011

. http://homelisp.ru/help/reg_funct.html, Описание функций

7. http://abc.vvsu.ru/Books/Prog_win/page0010.asp, Структура Windows приложения

8. http://msdn.microsoft.com/ens/library/windows/desktop/ms724842 (v=vs.85).aspx, Registry Function

Источник: https://www.bibliofond.ru/detail.aspx?id=877957