На написання цієї статті мене спонукало одне невелике пригода: одна з жінок на роботі звернулася до мене з питанням — у неї значок Вордівского файлу не відображався як для цих файлів, а як для незареєстрованого типу. Спробував зареєструвати його, використовуючи пункт контекстного меню «Відкрити за допомогою», але файл відкрився, а значок не змінився. Був кінець робочого дня, тому я протормозил пару хвилин, поки не здогадався подивитися розширення файлу…

Його не було 🙂 — це і не дозволяло асоціювати файл з додатком. Ось я і вирішив написати статтю про реєстрацію розширень файлів. Що це дає? Ви можете подвійним кліком відкрити файл за допомогою асоційованого додатки, додати до нього додаткові команди (наприклад, друк, швидкий перегляд і т. п.). Для цього зовсім не обов’язково лізти в реєстр — можна все зробити за допомогою того ж меню «Відкрити за допомогою…» або провідника, але це не завжди зручно. Так, якщо вам треба зробити одну і ту ж операцію, скажімо, на десятці комп’ютерів, то набагато простіше написати reg-файл і встановити його на всіх машинах. Або ви поширюєте програму, що використовує ваш формат файлів, і щоб асоціювати файли з програмою на машинах користувачів автоматично треба використовувати той же reg-файл, або правити реєстр з програми. Ось для цих випадків і потрібна ця стаття.

Файли реєструються у розділі HKEY_LOCAL_MACHINE. Для прикладу зареєструємо файл з розширенням .diz — багато програм поставляються з файлом опису, мають таке розширення. Непогано було б при запуску його переглядати вміст в текстовому редакторі, наприклад, Notepad. Створіть розділ з ім’ям .diz, параметр якого «За замовчуванням» додати запис «DIZ-File» (без лапок).

У розділі HKEY_LOCAL_MACHINE створіть ще один розділ з іменем, яке було в параметрі «За замовчуванням», тобто DIZ-File. Задайте значення «За замовчуванням» рівне «Опис програми» і в цьому ж розділі створіть підрозділи shell і DefaultIcon.

У підрозділі shell створіть ще один підрозділ Open, а в ньому розділ command. Значення command «За замовчуванням» повинно бути «C:windowsnotepad.exe „%1“». У розділі DefaultIcon параметр «За замовчуванням» задайте рівним «C:windowsnotepad.exe,1». Вийшло трохи сумбурно і заплутано, але наведений нижче reg-файл повинен усунути всі неясності

REGEDIT4

[HKEY_CLASSES_ROOT.diz]

@=«DIZ-File»;

[HKEY_CLASSES_ROOTDIZ-File]

@=«Опис програми»

[HKEY_CLASSES_ROOTDIZ-Fileshell]

[HKEY_CLASSES_ROOTDIZ-FileshellOpen]

[HKEY_CLASSES_ROOTDIZ-FileshellOpencommand]

@=«C:windowsnotepad.exe „%1“»

[HKEY_CLASSES_ROOTDIZ-FileDefaultIcon]

@=«C:windowsnotepad.exe,1»;

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

Тепер додамо пункт на роздрукування цього файлу. Покажу це на прикладі нашого reg-файлу. Додайте наступні рядки в кінець файлу:

[HKEY_CLASSES_ROOTDIZ-Fileshellprint]

[HKEY_CLASSES_ROOTDIZ-Fileshellprintcommand]

@=«C:windowsnotepad.exe /p „%1“»

Думаю, аналогія зрозуміла. Тепер ви самі можете додати будь-який пункт меню до будь-якого зареєстрованого типом файлів. Так, можна було б додати перегляд файлів diz в WordPad’e, word’e чи ще десь. Можливості редагування контекстного меню файлів вельми обширні і я сподіваюся, що мені вдалося досить зрозуміло пояснити технологію додавання нових пунктів. Ну, а якщо щось буде незрозуміло, пишіть.