Тонкая настройка расширений файлов в Windows 7

Чтобы 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 служит для задания всплывающей подсказки к типу файла. С ним всё просто и ясно:

Параметры PreviewDetailsPreviewTitle и 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.

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

Автор: Сергей Ткаченко

Сергей Ткаченко создал этот сайт в далёком 2009 году, и с тех пор продолжает над ним работать, публикуя новые материалы о Windows и её приложениях практически каждый день.

css.php