Сообщение 12 ноя 2013, 09:10

Добавление нового пункта в меню "Создать"

Общая теория
Когда мы щелкаем правой кнопкой мыши на свободном месте Проводника, то в контекстном меню можем увидеть команду Создать с подменю. Например, мы можем таким образом создать новый текстовый файл, документ WORD и так далее. Часто в этом меню присутствуют и команды установленных вами программ.

Стандартные пункты списка Создать
Обычно, список Создать содержит пункты, с помощью которых можно создавать файлы определенных расширений. Вы можете удалить эти пункты из списка Создать, просто удалив подраздел ShellNew из ветви реестра вида HKEY_CLASSES_ROOT\«расширение файла». Приведем небольшой список команд и соответствующие расширения:
  • Портфель - .Briefcas
  • Контакт (используется для создания контакта для адресной книги почтового клиента Почта Windows (расположена в каталоге %userprofile%\Contacts) - .contact
  • Сжатая папка (Для удаления данного пункта нужно удалить раздел ShellNew из ветви реестра HKEY_CLASSES_ROOT\.zip\CompressedFolder) - .zip
  • окумент Журнала (используется для создания файла программы Журнал (%programfiles%\Windows Journal\Journal.exe). Для удаления данного пункта нужно удалить раздел ShellNew из ветви реестра HKEY_CLASSES_ROOT\.jnt\jntfile)) - .jnt
  • Ярлык - .lnk
  • Папка - .Folder

Создаем свою команду
Вы сами можете создать при необходимости свою команду. За команды в контекстном меню Создать отвечает раздел ShellNew в разделе HKEY_CLASSES_ROOT. Вам нужно найти необходимое расширение файла (напр.. .doc) и изучить раздел ShellNew. Вы можете либо удалить ее, чтобы скрыть команду из контекстного меню, либо добавить свои команды.

Например, если вы веб-дизайнер, то было бы удобно иметь пункт Документ HTML, который позволит вам сразу создать заготовку для вашей странички.

Разобmем работу на несколько этапов. Для начала найдем каталог ShellNew в папке Windows. Там хранятся заготовки для файлов, которые создаются с помощью контекстного меню. Например, если у вас установлен Microsoft Office, то вы увидите в этом каталоге файлы-заготовки для Word и Excel.

Следующий шаг - создайте в папке файл, например index.html. Внутри него напишите шаблон вашей странички. Например, так:
  Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Мой заголовок</title>
</head>
<body>


</body>
</html>

Третий шаг - работаем с реестром. Ищем раздел HKEY_CLASSES_ROOT\.html и создаем раздел ShellNew. В этом разделе создаем строковый параметр FileName в качестве значения которого надо указать имя созданного нами шаблона (index.html). После перезагрузки в контекстном меню появится новый пункт.

Существуют и другие способы. Можно не создавать шаблон файла. Он может быть и пустым, но тогда вместо параметра FileName надо создать пустой строковый параметр NullFile.

Еще FileName можно заменить параметром Data. Тип у него может быть любой - строковый или двоичный, в зависимости от данных шаблона. Содержимое параметра Data будет записано в файл. Фактически, это полный аналог FileName, только в нем шаблон хранится в виде файла, а тут шаблон хранится в реестре. Лучше, конечно, не раздувать реестр и пользоваться FileName, но если размер шаблона всего несколько байтов, то уместнее использовать параметр Data.

Следующий вариант - предоставить возможность создания файла программе. Указываем строковый параметр Command. В Command просто пишем в кавычках полный путь к файлу программы, пробел и (тоже в кавычках) макрос %1 (он будет заменён на имя только что созданного файла), например, "c:\windows\notepad.exe" "%1". Теперь созданный файл будет сразу открываться в указанной программе.

Параметры
Параметры FileName, Data, NullFile, Command все вместе использовать нельзя, можно применять только один из них.

Command
этот параметр строкового типа определяет команду, которая будет выполняться при выборе соответствующего пункта меню Создать (то есть содержимое этого параметра ничем не отличается от содержимого параметра (По умолчанию) подраздела Command.
NullFile
данный строковый параметр не должен содержать никакого значения. При этом после выбора команды для создания файла соответствующего расширения будет создаваться пустой файл. Например, при помощи этого параметра создаются текстовые файлы.
FileName
имеет строковый тип и определяет путь и имя файла, который будет создаваться (просто копироваться в папку, из которой был вызван список Создать, или на Рабочий стол) после выбора соответствующей команды меню Создать.
Data
данный параметр двоичного типа содержит последовательность цифр в шестнадцатеричной системе счисления, которую система будет использовать для генерации содержимого файла (например, этот параметр используют файлы с музыкальным содержимым для возможности создания пустого файла-образца звука).