Изучаем раздел HKEY_CLASSES_ROOT

We use cookies. Read the Privacy and Cookie Policy

Изучаем раздел 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 ).

Рассмотрим сказанное на примере текстового файла TXT. Запустите редактор реестра и перейдите в раздел HKEY_CLASSES_ROOT . Теперь найдите в нем раздел .txt . (рис. 4.5).

Рис. 4.5. Раздел HKEY_CLASSES_ROOT txt

Обратите внимание, что параметр по умолчанию для данного раздела содержит значение txtfile , которое является идентификатором. Таким образом, нам теперь нужно найти раздел txtfile , чтобы найди дополнительную информацию о текстовых файлах. Поэтому переходим в раздел txtfile (рис. 4.6) для дальнейшего изучения.

Рис. 4.6. Раздел HKEY_CLASSES_ROOT xtfile

Посмотрим на значение по умолчанию. Здесь дается текстовое описание для заданного типа файлов. В моем случае это значение равно Text Document . Если у вас стоит нелокализованная версия Windows, то этот текст и будет виден в описании файла, когда пользователь подводит указатель мыши. Также мы видим здесь параметр EditFlags , о котором поговорим чуть позже.

Раздел DefaultIcon

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

Рис. 4.7. Раздел HKEY_CLASSES_ROOT xtfileDefaulticon

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

Раздел shell

Следующий раздел, который нас интересует, – это раздел shell . Данный раздел очень важен для системы, так как Windows именно отсюда берет информацию о том, какие действия нужно предпринимать при двойном щелчке и других операциях. Раздел shell содержит для этой цели несколько подразделов, иногда называемых глаголами (verb). Существует несколько стандартных преопределенных глаголов: edit, open, print, printto . Если вызвать контекстное меню у файла, то в нем могут присутствовать команды Открыть, Печать, Изменить , которым соответствуют глаголы open, print и edit . Каждый подраздел-глагол в свою очередь содержит подраздел command , который содержит командную строку в параметре по умолчанию (рис. 4.8).

Рис. 4.8. Раздел HKEY_CLASSES_ROOT xtfileShellopencommand

Например, при двойном щелчке мыши на файле запускается программа, прописанная в разделе open . Здесь стоит обратить внимание на подстроку %1, входящую в командную строку:

%SystemRoot%system32NOTEPAD.EXE-%1

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

Данный текст является ознакомительным фрагментом.