Вивчаємо розділ hkey_classes_root

Вивчаємо розділ HKEY_CLASSES_ROOT

Для того щоб стати справжнім фахівцем по роботі з реєстром, необхідно вільно розбиратися в структурі розділу HKEY_CLASSES_ROOT. Чому це так важливо? А тому, що саме тут зосереджена основна інформація, яку система використовує при роботі з файлами. Ви клацаєте в Провіднику на якомусь документі, і Windows запускає програму, яка пов'язана з цим документом. Розширення файлів, їх зв'язку з програмами, висновок на друк, значки для зареєстрованих типів документів і багато іншого - все це зберігається в розділі HKEY_CLASSES_ROOT. Не випадково цей розділ за замовчуванням закритий для редагування, щоб не пошкодити систему непродуманими дейст виями.

Структура розділу HKEY_CLASSES_ROOT

Типи файлів і їх зв'язку з програмами визначаються системою, яка зчитує інформацію з розділу HKEY_CLASSES_ROOT. Безліч типів файлів вже зареєстровано в системі під час установки операційної системи, такі, як BMP, TXT, HTM. Деякі типи файлів з'являються в реєстрі під час установки нових додатків від сторонніх виробників. Наприклад, при установці архиватора WinRAR в системі з'являються асоціації з файлами RAR, а після установки PhotoShop - з файлами PSD. Після установки Visual Studio операційна система починає розпізнавати безліч найрізноманітніших файлів - CPP, CS, VB, SLN і т. Д. Ви теж можете придумати своє розширення для файлу і зареєструвати його в Windows. Причому зробити це досить легко, і після прочитання цієї глави ви без проблем зможете створювати свої типи файлів.

Кожному зареєстрованому типу файлів відповідають два підрозділи в розділі HKEY_CLASSES_ROOT. Ім'я першого підрозділу відповідає розширенню файлу і містить ідентифікатор (name_ID).

Мал. 4.5. Розділ HKEY_CLASSES_ROOT txt

Зверніть увагу, що параметр за замовчуванням для даного розділу містить значення txtfile. яке є ідентифікатором. Таким чином, нам тепер потрібно знайти розділ txtfile. щоб знайди додаткову інформацію про текстових файлах. Тому переходимо в розділ txtfile (рис. 4.6) для подальшого вивчення.

Мал. 4.6. Розділ HKEY_CLASSES_ROOT xtfile

Подивимося на значення за замовчуванням. Тут дається текстовий опис для заданого типу файлів. У моєму випадку це значення дорівнює Text Document. Якщо у вас стоїть нелокалізований версія Windows, то цей текст і буде видно в описі файлу, коли користувач підводить покажчик миші. Також ми бачимо тут параметр EditFlags. про який поговоримо трохи пізніше.

У всіх зареєстрованих типів файлів є підрозділ DefaultIcon. Як неважко здогадатися з назви, тут зберігається інформація про значок, який зіставлений з текстовими файлами. Для самоперевірки можете за допомогою програми IconViewer переконатися в цьому. Наприклад, для текстового файлу параметр дорівнює% SystemRoot% system32imageres.dll, -102. Значить, значок для текстового файлу міститься в файлі imageres.dll під номером 102 (рис. 4.7).

Мал. 4.7. Розділ HKEY_CLASSES_ROOT xtfileDefaulticon

Якщо ви хочете, щоб виводився ваш власний значок, то можете вказати повний шлях до вашого значку або файлу, який містить значок.

Наступний розділ, який нас цікавить, - це розділ shell. Даний розділ дуже важливий для системи, так як Windows саме звідси бере інформацію про те, які дії потрібно робити при подвійному натисканні та інших операціях. Розділ shell містить для цієї мети кілька підрозділів, іноді званих дієсловами (verb). Існує кілька стандартних преопределенность дієслів: edit, open, print, printto. Якщо викликати контекстне меню у файлу, то в ньому можуть бути присутніми команди Відкрити, Друк, Змінити. яким відповідають дієслова open, print і edit. Кожен підрозділ-дієслово в свою чергу містить підрозділ command. який містить командний рядок в параметрі за замовчуванням (рис. 4.8).

Мал. 4.8. Розділ HKEY_CLASSES_ROOT xtfileShellopencommand

Наприклад, при подвійному натисканні миші на файлі запускається програма, прописана в розділі open. Тут варто звернути увагу на подстроку% 1, що входить до командного рядка:

При запуску програми Блокнот параметр% 1 замінюється ім'ям обраного файлу. Таким чином, коли користувач клацає на файлі sample .txt, який знаходиться на диску D :. то система запускає програму C: Windowssystem32 otepad.exe з файлом D: sample.txt.

Поділіться на сторінці