Как я уже упоминал выше, корневой раздел реестра HKEY_CLASSES_ROOT (сокращенное обозначение HKCR)- используется для ассоциации между приложениями и расширениями файлов. Другими словами, содержимое данного раздела, определяет, какие приложения, и каким образом, обрабатывают файлы с определенными расширениями. Например, при установленном пакете Microsoft Office, файлы с расширением .doc отображаются в проводнике с иконкой ассоциированного с данным типом файлов приложения Microsoft Word, а двойной щелчок на ярлыке такого файла вызовет его открытие для редактирования в Word'е. Для просмотра и изменения ассоциаций файлов и приложений можно воспользоваться меню Панель управления - Свойства папки - Типы файлов При создании ассоциаций выполняется запись определенных данных в раздел HKCR, что позволяет сопоставить определенному типу файла нужное для его обработки приложение и соответствующую ему иконку. В качестве примера я взял записи в HKCR, относящиеся к файлам с расширением .3gp Отрываем раздел HKEY_CLASSES_ROOT\.3gp
Первый строковый параметр (Параметр по умолчанию) определяет имя раздела в HKCR, данные которого, описывают приложение, сопоставленное расширению файла .3gp. Остальные параметры не обязательны, и описывают тип содержимого для файлов .3gp. В данном случае, раздел реестра для ассоциации приложения с типом файлов .3gp - HKEY_CLASSES_ROOT\mplayerc.3gp
Количество и содержание подразделов и отдельных ключей определяется особенностями конкретных типов файлов и ассоциируемых с ними приложений, однако практически всегда присутствуют
DefaultIcon - параметр по умолчанию указывает на файл, содержащий иконку, сопоставленную файлам с данным расширением. В данном примере для открытия файлов с расширением .3gp используется приложение Media Player Classic, набор иконок которого хранится в библиотеке mpciconlib.dll в каталоге программы. Значение строкового параметра "C:\Program Files\K-Lite Codec Pack\Media Player Classic\mpciconlib.dll",28 Где 28 - порядковый номер иконки. Одно и то же приложение может быть ассоциировано с несколькими типами файлов, и иметь несколько разных вариантов отображаемых иконок.
Shell - раздел определяет набор возможных действий над файлом данного типа.
Подраздел Open раздела Shell определяет действие при открытии файла .3gp Подраздел Command раздела Open задает команду, выполняемую при открытии файлов .3gp. В данном случае: "C:\Program Files\K-Lite Codec Pack\Media Player Classic\mplayerc.exe" "%1" Т.о. при открытии файла с расширением .3gp, например, двойным щелчком мышки, будет запущен проигрыватель Media Player Classic, и в качестве входного параметра ему будет передано имя проигрываемого файла ("%1" в строке команды).
В ветви HKEY_CLASSES_ROOT есть раздел с именем "*". Параметры, задаваемые в данном разделе определяют действия, выполняемые по отношению ко всем расширениям файлов, в том числе и не зарегитрированным. Действия по отношению к папкам определяются содержимым раздела HKEY_CLASSES_ROOT\Folder.