Чтобы Windows 7 смогла "понять", что ей делать с конкретным файлом, его расширение должно быть описано в реестре: должна присутствовать хотя бы минимальная структура подразделов и их параметров, описывающих тип файла. В этой статье мы рассмотрим эту структуру с целью выяснить, какие её параметры и разделы за что отвечают и для чего можно использовать полученные знания.
Для всех зарегистрированных в операционной системе типов файлов хранятся настройки в двух подразделах корневого раздела HKEY_CLASSES_ROOT. называемых подразделом расширения файла и подразделом идентификатора файла. Название подраздела расширения файла обычно представляет собой расширение файла с точкой перед ним - например, .pdf, а название подраздела идентификатора указывается в параметре по умолчанию:
Обо всем этом я писал вот здесь. Сегодня мы рассмотрим, как можно использовать параметры подраздела идентификатора файла для тонкой настройки поведения системы.
Параметры подраздела идентификатора файла
Этот подраздел весьма интересен, в частности тем, что в нем может находиться один из двух параметров: AlwaysShowExt или NeverShowExt, которые определяют, будет ли отображаться расширение для данного типа файла или не будет вообще отображаться, соотвественно. Например, по умолчанию расширение файла не отображается в файлах следующих расширений: .url (ярлык на веб-страницу), .lnk (обычный ярлык), .pif (ярлык MS-DOS), .search-ms (сохраненный запрос поиска), .scf (объект, содержащий другой объект).
Вы можете самостоятельно настроить, используя эти два параметра, как отображать расширения для конкретного типа файлов . Например, если отображение расширений у вас выключено (а это настройка Windows 7 по умолчанию), вы можете включить расширения только для исполняемых файлов (.exe):
Результат будет таким:
В ряде случаев такой трюк позволяет быстро визуально распознать вирусню, маскирующуюся под безобидный тип файлов. Рекомендую.
Кроме того, в этом же подразделе могут находится и другие параметры, информация о которых не будет лишней любознательному читателю.
Параметр IsShortCut подраздела идентификатора файла указывает на то, что файлы, имеющие текущий идентификатор, являются ярлыками и должны иметь "стрелочку" на значке. Внимание!. Не удаляйте этот параметр, чтобы избавиться от оверлейного значка, это приводит к некорректной работе Проводника.
Параметр FriendlyTypeName служит для указания текстового описания типа файлов, отображаемого его в свойствах.
Может быть задано в виде текстовой строки, либо ссылки на ресурс в DLL-файле:
@%SystemRoot%\System32\shell32.dll,-10156
.
Параметр InfoTip служит для задания всплывающей подсказки к типу файла. С ним всё просто и ясно:
Параметры PreviewDetails, PreviewTitle и FullDetails содержат ссылки на системные типы метаданных. Формат записи их значений таков:
prop:«метаданные1»[; «метаданные2»;«метаданныеN»]
Например, метаданные "System.FileOwner" служат для получения идентификатора безопасности владельца файла, запись для их извлечения:
prop:System.FileOwner
Полный перечень метаданных доступен на MSDN.
Чтобы понять, как всё это работает и для чего это можно использовать, предлагаю рассмотреть каждый из параметров и поэкспериментировать с ним.
Параметр PreviewTitle отвечает за информацию, отображаемая в левой части панели подробностей проводника.
Задав ему определенные значения метаданных, можно переопределить или, задав пустое значение, отключить вывод информации в это поле вообще.
Например, я переопределил значение PreviewTitle и вывожу в него размер файла:
Параметр PreviewDetails отвечает за информацию, отображаемая в правой части панели подробностей проводника.
Аналогичным образом задаем значения метаданных для отображения тех сведений, которые представляют для нас интерес. Для примера, вот такое значение свойства PreviewDetails:
prop:System.Copyright;System.Size;System.Kind;System.FileAttributes;System.SharingStatus
приводит к отображению дополнительной информации в панели предпросмотра:
Параметр FullDetails отвечает за вкладку "Подробно" свойств файла:
Задав значение FullDetails из предыдущего примера, вы получите сходный результат и на этой вкладке:
Параметр TileInfo - информация, отображаемая в режиме представления проводника "Плитка". Например, при TileInfo="prop:System.Size;System.Kind" получаем:
Параметр ExtendedTileInfo - информация, отображаемая в режиме расширенных сведений ("Содержимое"), аналогично TileInfo.
💡Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.