Реєстр Windows та функції API для роботи з ним

Содержание

Слайд 2

РЕЄСТР WINDOWS Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua У Microsoft Windows

РЕЄСТР WINDOWS


Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

У Microsoft Windows настройка

здійснюється через реєстр - механізм, який спрощує зберігання параметрів додатків і службових програм.
Реєстр - це централізована ієрархічна база даних, що складається з декількох файлів (для програмістів, що працюють з ним, він подається як єдина база даних) і володіє наступними можливостями:
Ієрархічна організація даних програми дозволяє зберігати свої параметри довільним чином;
Підтримує багатокористувацьку роботу, він розділений на дві частини, в одній з яких зберігаються параметри локального комп'ютера (HKEY_LOCAL_MACHINE), а в іншій - користувальницькі параметри (HKEY_USERS);
Обмеження доступу до будь-яких розділів реєстру;
Зберігання даних різних типів, у тому числі довічних DWORD, рядків і мультірядків.
Реєстр - обмежений спільний системний ресурс, у різанні з яким потрібно дотримуватися певних правил етикету (або угод), багато з них накладаються самою системою.
Слайд 3

РЕЄСТР WINDOWS Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua В основі системного

РЕЄСТР WINDOWS


Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

В основі системного реєстру

лежить ієрархія розділів (ключів) і значень. Розділи (ключі реєстру) можуть складатися з довільного числа підрозділів (підключей) значень. У свою чергу підрозділи володіють такими ж правами і можуть включати в себе скільки завгодно значень і нових підрозділів. назви розділів одного рівня повинні розрізнятися, крім того, в них не повинна входити зворотна коса риска. Для перегляду реєстру можна використовувати стандартну програму regedit.exe.
Слайд 4

РОЗДІЛИ СИСТЕМНОГО РЕЄСТРУ WINDOWS 2000, ЩО ВИЗНАЧЕНІ ЗАЗДАЛЕГІДЬ Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

РОЗДІЛИ СИСТЕМНОГО РЕЄСТРУ WINDOWS 2000, ЩО ВИЗНАЧЕНІ ЗАЗДАЛЕГІДЬ

Операційні системи. Кафедра Інформатики.

E-mail: informatika@kture.kharkov.ua
Слайд 5

РОЗДІЛИ СИСТЕМНОГО РЕЄСТРУ WINDOWS 2000, ЩО ВИЗНАЧЕНІ ЗАЗДАЛЕГІДЬ Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

РОЗДІЛИ СИСТЕМНОГО РЕЄСТРУ WINDOWS 2000, ЩО ВИЗНАЧЕНІ ЗАЗДАЛЕГІДЬ

Операційні системи. Кафедра Інформатики.

E-mail: informatika@kture.kharkov.ua
Слайд 6

АРХІТЕКТУРА ДОСТУПУ ДО ЛІЧИЛЬНИКІВ ПРОДУКТИВНОСТІ(РОЗДІЛ HKEY_PERFORMANCE_DATA) Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

АРХІТЕКТУРА ДОСТУПУ ДО ЛІЧИЛЬНИКІВ ПРОДУКТИВНОСТІ(РОЗДІЛ HKEY_PERFORMANCE_DATA)

Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

Слайд 7

ТИПИ ДАНИХ ЗНАЧЕНЬ РЕЄСТРУ(ПОВНИЙ СПИСОК ТИПІВ ДАНИХ, ЯКІ ПІДТРИМУЄ WINDOWS 2000)

ТИПИ ДАНИХ ЗНАЧЕНЬ РЕЄСТРУ(ПОВНИЙ СПИСОК ТИПІВ ДАНИХ, ЯКІ ПІДТРИМУЄ WINDOWS 2000)

Операційні

системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua
Слайд 8

ТИПИ ДАНИХ ЗНАЧЕНЬ РЕЄСТРУ(ПОВНИЙ СПИСОК ТИПІВ ДАНИХ, ЯКІ ПІДТРИМУЄ WINDOWS 2000)

ТИПИ ДАНИХ ЗНАЧЕНЬ РЕЄСТРУ(ПОВНИЙ СПИСОК ТИПІВ ДАНИХ, ЯКІ ПІДТРИМУЄ WINDOWS 2000)

Операційні

системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua
Слайд 9

УГОДА ПО РОБОТІ З РЕЄСТРОМ Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

УГОДА ПО РОБОТІ З РЕЄСТРОМ

Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

Параметри реєстру,

специфічні для комп'ютера. Існує угода, відповідно до якої програми та службові програми зберігають дані, специфічні для конфігурації виконуючого їх комп'ютера, в такій ієрархії розділів:
HKEY_LOCAL_MACHINE Software Company Name Your Product Name Your Product Version (optional)       Key1           Value1           Value2       Key2
Слайд 10

УГОДА ПО РОБОТІ З РЕЄСТРОМ Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

УГОДА ПО РОБОТІ З РЕЄСТРОМ

Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

Параметри реєстру,

специфічні для користувача. Підрозділи розділу HKEY_USERS містять відомості про параметри користувача. Система автоматично встановлює відповідність між HKEY_CURRENT_USER і підрозділом, що описує поточний, тобто асоційованого з поточним процесом, користувача. Якщо потік запозичує права іншого користувача, всі звернення цього потоку до HKEY_CURRENT_USER будуть ставитися до цього користувача. Якщо програма буде звертатися до специфічної для користувача інформації реєстру, вона має дотримуватися угоди, схожої на вживане в разі для розділу HKEY_LOCAL_MACHINE:
HKEY_CURRENT_USER
Software
Your Company Name
Your Product Name
Your Product Version (optional)
Key1
Value1
Value2
Key2
Слайд 11

УГОДА ПО РОБОТІ З РЕЄСТРОМ Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

УГОДА ПО РОБОТІ З РЕЄСТРОМ

Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

Дескриптор ключа

(підрозділу) (key handle) зберігається у змінній типу HKEY. Щоб отримати дескриптор ключа HKEY, необхідно використовувати функції RegOpenKeyEx або RegCreateKeyEx. Перший аргумент цих функцій має тип HKEY. При виклику будь-якої з цих функцій в якості першого аргументу можна вказати константу, наприклад ім'я одного з кореневих ключів реєстру (наприклад, HKEY_CLASSES_ROOT). Windows дозволяє скористатися декількома константами типу HKEY, які за умовчанням є відкритими. Цими константами є:
HKEY_CLASSES_ROOT HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_CONFIG HKEY_DYN_DATA Ці константи відповідають кореневим ключам реєстру.
Слайд 12

ДЕЯКІ(ЧАСТО ВИКОРИСТОВУВАНІ) ФУНКЦІЇ API ДЛЯ РОБОТИ З РЕЄСТРОМ Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

ДЕЯКІ(ЧАСТО ВИКОРИСТОВУВАНІ) ФУНКЦІЇ API ДЛЯ РОБОТИ З РЕЄСТРОМ

Операційні системи. Кафедра Інформатики.

E-mail: informatika@kture.kharkov.ua
Слайд 13

ДЕЯКІ(ЧАСТО ВИКОРИСТОВУВАНІ) ФУНКЦІЇ API ДЛЯ РОБОТИ З РЕЄСТРОМ Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

ДЕЯКІ(ЧАСТО ВИКОРИСТОВУВАНІ) ФУНКЦІЇ API ДЛЯ РОБОТИ З РЕЄСТРОМ

Операційні системи. Кафедра Інформатики.

E-mail: informatika@kture.kharkov.ua
Слайд 14

ПРИКЛАД РОБОТИ З РЕЄСТРОМ Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua Приклад

ПРИКЛАД РОБОТИ З РЕЄСТРОМ

Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

Приклад роботи з

реєстром виконує перелік вмісту ключа реєстру HKEY_CURRENT_USER \ Software. Робота з реєстром реалізована з використанням виключно API функцій, але в цілому дану функцію можна буде застосувати тільки в додатках ATL або MFC, в зв'язку з використанням класу CString. Функція переліку вмісту ключа реєстру HKEY_CURRENT_USER \ Software
void RegReadSample (CString &strResult)
{
TCHAR szBuff[MAX_PATH];
DWORD dwBSize = MAX_PATH, dwIndex = 0;
HKEY hKey = 0;
LONG lResult = 0;
FILETIME ft;
lResult = ::RegOpenKeyEx(HKEY_CURRENT_USER, _T("software"),0, KEY_ENUMERATE_SUB_KEYS,&hKey);
if(lResult==ERROR_SUCCESS)
{
while(lResult==ERROR_SUCCESS)
{
lResult=::RegEnumKeyEx(hKey,dwIndex,szBuff,&dwBSize,0,0,0,&ft);
if(lResult==ERROR_SUCCESS)
{
dwIndex++;dwBSize = MAX_PATH;
strResult += (CString(szBuff)+_T("\r\n"));
}
}
}
UpdateData(0);
}
Слайд 15

РОБОТА З РЕЄСТРОМ Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua Зауваження. Дуже

РОБОТА З РЕЄСТРОМ

Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

Зауваження. Дуже важливо при

роботі з реєстром пам'ятати про особливості функції RegDeleteKey. При виклику цієї функції необхідно обов'язково перевіряти параметр, що передається в цю функцію, на наявність в ньому інформації. Цей параметр не повинен бути порожнім, інакше операційна система може бути дуже серйозно пошкоджена, особливо, якщо це Windows 98.
У разі успішного виконання функцій RegOpenKeyEx, RegEnumKeyEx, повертається значення ERROR_SUCCESS. При виконанні функції RegOpenKeyEx використан параметр KEY_ENUMERATE_SUB_KEYS, який вказує тип маски доступу до ключів реєстру. Вказане значення не єдине. Всі можливі значення цього параметра наведені в таблиці.
Слайд 16

РОБОТА З РЕЄСТРОМ Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua При роботі

РОБОТА З РЕЄСТРОМ

Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua
При роботі з реєстром

необхідно пам'ятати, що доступ до реєстру в цілому і до його ключів зокрема регулюється правами користувача, профіль якого активний в даний момент на комп'ютері. Це стосується операційних систем сімейства Windows NT, а в ОС Windows 98/Me ці обмеження не діють. Облік прав користувача вкрай важливий, оскільки програми, що працюють з реєстром можуть не мати доступу до тих чи інших ключів в залежності від прав користувача. Повний доступ до реєстру мають програми, що запускаються в режимі адміністратора або користувачів з правами адміністратора.
Слайд 17

ЗНАЧЕННЯ ТИПІВ ДОСТУПУ ДО КЛЮЧІВ РЕЄСТРУ Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

ЗНАЧЕННЯ ТИПІВ ДОСТУПУ ДО КЛЮЧІВ РЕЄСТРУ

Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

Слайд 18

ЗНАЧЕННЯ ТИПІВ ДОСТУПУ ДО КЛЮЧІВ РЕЄСТРУ Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

ЗНАЧЕННЯ ТИПІВ ДОСТУПУ ДО КЛЮЧІВ РЕЄСТРУ

Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

Слайд 19

МОДИФІКАЦІЯ РЕЄСТРУ З ВИКОРИСТАННЯМ REG ФАЙЛА Операційні системи. Кафедра Інформатики. E-mail:

МОДИФІКАЦІЯ РЕЄСТРУ З ВИКОРИСТАННЯМ REG ФАЙЛА

Операційні системи. Кафедра Інформатики. E-mail: informatika@kture.kharkov.ua

Для

модифікації (додавання) великої кількості даних в реєстр можна використовувати REG-файли. Це файли, про які згадувалося при описі функції LoadKey. REG-файли - це прості текстові ASCII-файли з інформацією про вміст реєстру. REG-файл можна створити з використанням програми REGEDIT за допомогою пункту меню Export цієї програми. Також REG-файл можна створити самостійно, за допомогою будь-якого текстового редактора. Приклад такого файлу наводиться нижче:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\MyProgram\1.0]
[HKEY_CURRENT_USER\Software\MyProgram\1.0\Current]
"Parametr1"=dword:00000001
[HKEY_CURRENT_USER\Software\MyProgram\1.0\Current\Start]
"ProgramStart"=hex:00,00,00,00
"DefaultPath"="C:\\Program Files\\MyProgram"
@="C:\\Program Files\\MyProgram\\Database"