В предыдущей стате мы рассмотрели подраздел идентификатора файла и его параметры, влияющие на отображение файла в Проводнике. Сегодня мы рассмотрим подраздел ShellNew из ветки расширения файла (HKEY_CLASSES_ROOT\.расширение\ShellNew), наличие которой указывает на присутствие типа файла в меню "Создать".
Подраздел ShellNew присутствует у некоторых файлов сразу после установки системы. Типичный пример - файл ярлыка (*.lnk), вы можете создать ярлык практически в любой области файловой системы.
Сам факт существования подраздела ShellNew - условие необходимое, но недостаточное для корректного функционирования пункта меню "Создать". Для работы этого пункта в подразделе должен присутствовать хотя один из этих параметров строкового типа:
- Command - содержит команду, выполняемую при выборе пункта меню "Создать", относящегося к текущему расширению. Например, для пункта меню "Создать"-"Контакт" параметры выглядит так:
[code]"%programFiles%\Windows Mail\Wab.exe" /CreateContact "%1"[/code]
- FileName - служит для задания файла-шаблона, копия которого будет помещена в качестве нового, пустого файла при вызове соответствующего пункта меню "Создать".
- NullFile - параметр указывает создать пустой файл с соответствующим расширением.
Помимо этого, в ShellNew могут находится следующие параметры, также строкового типа:
- IconPath - задает путь к значку, отображаемому для пункта меню "Создать".
- MenuText - задает текстовое название пункта меню "Создать". Может быть непосредственно текстом или ссылкой на строковый ресурс DLL-файла.
Существует ряд дополнительных возможностей по настройке механизма создания нового файла через меню "Создать". Возможности эти регулируются параметрами строкового типа с пустым значением, находящимися в подразделе HKEY_CLASSES_ROOT\.расширение\ShellNew\Config:
- NoExtension - удалять расширение у создаваемого создаваемого файла. Каждый раз, создавая новую папку Проводником, вы видите в действии этот параметр.
- DontRename - не выделять имя только что созданного файла для переименования.
- IsFolder - признак того, что создаваемый файл представляет собой средство организации ссылок на файлы. Обычная папка - тому яркий пример.
- NoEmptyFile - создание пустого файла недопустимо (хм, антипод ShellNew\NullFile?)
Воспользуемся этими сведениями на практике.
Пример №1. Создание пункта "Новый архив 7z"
Создадим для архиватора 7-zip пункт меню "Создать" (здесь я предполагаю, что на конечном компьютере он уже установлен), который будем использовать для создания нового архива 7z.
- Создайте пустой архив с именем New 7z archive.7z. Это легко сделать, если поместить в архив какой-либо мелкий файл, а потом открыть архив в интерфейсе 7-zip и удалить помещенный в него файл.
- Поместите файл New 7z archive.7zв папку C:\Users\All Users\Microsoft\Windows\Templates
- Откройте редактор реестра и создайте для расширения 7z раздел ShellNew со следующими параметрами:
Перезапустите Проводник, и наслаждайтесь полученным эффектом:
Пример №2. Создаем библиотеки в любом месте файловой системы
В ранних сборках Windows 7 была возможность создавать библиотеки там, где душа пожелает. Ближе к финалу подраздел расширенияHKEY_CLASSES_ROOT\.library-ms\ShellNew модифицировали таким образом, что библиотеки теперь можно создать только в соответствующей папке. В качестве демонстрационного примера в статье включим эту возможность назад.
- Создайте новую пустую библиотеку:
- Перейдите в папку C:\Users\ИМЯ_ВАШЕГО_ПОЛЬЗОВАТЕЛЯ\AppData\Roaming\Microsoft\Windows\Libraries и переместите файл New Library.library-ms в папку C:\Users\All Users\Microsoft\Windows\Templates
- В подразделе HKEY_CLASSES_ROOT\.library-ms\ShellNew удалите подраздел Config. Эта операция сделает возможной создать новую библиотеку где угодно на локальной файловой системе.
- В подразделе HKEY_CLASSES_ROOT\.library-ms\ShellNew удалите параметры NullFile и Handler.
- Создайте в подразделе HKEY_CLASSES_ROOT\.library-ms\ShellNew параметр FileName со значением "C:\Users\All Users\Microsoft\Windows\Templates\New Library.library-ms"
- Перезапустите Проводник. Теперь можно создать библиотеку где угодно:
💡Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.
Насколько я знаю, файлы образцы хранятся не в C:\Users\All Users\Microsoft\Windows\Templates, а в папке c:\windows\shellnew