Как я могу добавить элемент в «новое» контекстное меню?

117

Когда я щелкаю правой кнопкой мыши в любом месте, я получаю возможность добавить новый файл с указанным расширением. Я хотел бы добавить несколько пользовательских файлов в это меню, чтобы я мог щелкнуть правой кнопкой мыши и создать новый файл PHP, например.

Как я могу это сделать?

Theta30
источник
попробуйте новый инструмент редактора меню, включенный в Enhancer для правого клика, по
Рави Патель,
2
Если у вас возникли проблемы с добавлением совершенно нового расширения файла (вместо простого добавления NullFile/ FileNameк существующей записи) в Windows 7, тогда посмотрите этот другой вопрос ... superuser.com/questions/588647/…
MrWhite
2
Сайт Рамеша - хороший источник для добавления записей вручную.
Synetech

Ответы:

64

Чтобы добавить расширения по вашему выбору в список: создайте файл, добавьте содержимое ниже, сохраните его как what.reg и запустите его.

Примечание : замените .png на расширение файла, которое вы хотите добавить, и замените все что угодно.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.png\ShellNew]
"NullFile"=""

Источник

th3dude
источник
4
Пожалуйста, рассмотрите ссылку гнили .
Мехпер С. Палавузлар
1
Хороший звонок. Ответ отредактирован :)
th3dude
1
+1, это работает. Как мы можем иметь собственное имя файла, например, «index.php» вместо «New PHP file.php»?
Федмих
1
Мне пришлось запустить .regфайл дважды, чтобы он заработал. Спасибо за этот ответ.
Акаш
3
У меня не работало в Windows 10, 1709 :( Перезапустил проводник и перезапустил машину даже, все еще ...
Arete
66

Еще кое-что:

Если вы хотите добавить файл в качестве шаблона для нового элемента, используйте

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.html\ShellNew]
"FileName"="html.html"

и затем поместите файл (html.html) в:

  • Для вашего собственного профиля: %Userprofile%\Templates
  • Для всех пользователей: %Allusersprofile%\Templates
  • Для всей системы: %Systemroot%\ShellNew

Еще одна деталь: если вы хотите удалить запись «Windows Live Call» , используйте:

[-HKEY_CLASSES_ROOT\.wlcshrtctv2\LiveCall\ShellNew]
Эдуардо Молтени
источник
Классная мысль, чтобы можно было использовать файл в качестве шаблона!
Клей Николс
1
Если кому-то интересно, эта FileNameзапись переопределяет NullFileзапись, упомянутую в других ответах. Вам не нужно удалять существующее NullFileзначение. Однако наличие обеих записей, похоже, сбивает с толку некоторые другие сторонние утилиты, такие как ShellMenuNew от NirSoft . (Windows 7)
MrWhite
2
Я не думаю, что он должен быть в% Userprofile% Templates и т. Д., Если вы даете полный путь к файлу.
jiggunjer
3
Что мне делать, если я хочу создать два ярлыка для двух разных шаблонов для одной и той же программы? Например, я отлично использовал этот метод для создания элемента контекстного меню для шаблона «статьи» для TeXworks. Теперь я хочу также добавить шаблон «ified_article »для TeXworks. Могу ли я добавить оба в контекстное меню? Спасибо!
Прахар
3
В Windows 8.1 папки шаблонов, которые вы перечисляете, не работают. Я получаю ошибку «Отказано в доступе». Там, где должны быть шаблоны, теперь находится папка с ярлыками, называемая, по-видимому, «junction» - и это скрытый файл «для конкретной операционной системы». Поэтому папка Templates теперь перемещена. Смотрите эту ссылку для нового сопоставления ( jimmah.com/vista/Security/junctions.aspx ). Видимо, теперь это C:\Users\USER_NAME\AppData\Roaming\Microsoft\Windows\Templatesдля вашего собственного профиля, например.
Габриэль Стейплс
19

ShellNewHandler помог мне восстановить меню оболочки Windows 7> «Создать»> «TXT».

введите описание изображения здесь

  1. Снимите флажок .txt
  2. Нажмите Применить
  3. Проверьте .txt
  4. Нажмите Применить
Эрик
источник
2
Это позволяет вам добавлять новые записи? Из скриншотов и описания не видно.
MrWhite
2
это НЕ позволяет вам добавлять записи ... так что это совершенно не имеет отношения к теме.
Эрик Себаста
18

Войдите в редактор реестра и разверните HKEY_CLASSES_ROOT.

Перейти к .file_extention

и создайте ключ с именем ShellNew

Внутри этого создайте новый строковый ключ с именем NullFile без значения

Например, если бы я хотел создать новую запись для пустого объекта .wil *, я бы создал

[HKEY_CLASSES_ROOT\.wil\ShellNew]
NullFile = ""

* если расширение файла, такое как .wil, не существует, я сначала создал бы файл с этим расширением и дважды щелкнул бы по нему. Откройте его с помощью выбранной мной программы, так как это создаст другие необходимые ключи реестра и облегчит вашу работу.

Уильям Хилсум
источник
2
Не работает на Windows 10, также я нашел эту статью, но она также не работает: askvg.com/how-to-add-remove-items-from-new-menu-in-windows
Neo
5

Для удаления записей из списка, вот программа, которая позволяет включать / отключать записи из графического интерфейса. Гораздо проще, чем искать в реестре!

К сожалению, это не позволяет добавлять записи.

Blorgbeard
источник
Это как раз то, что мне было нужно, спасибо! Как правило, все, что вам действительно нужно, это «Новый текстовый документ» ...
Эндрю
5

Ни один из этих методов не работал для меня в Windows 10.

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

Это минимум, необходимый для создания записи, но у него не будет иконки.

ПРИМЕЧАНИЕ: третья запись предназначена для нового ключевого текстового файла, указанного в значении (по умолчанию) .txt

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.txt]
@="textfile"

[HKEY_CLASSES_ROOT\.txt\ShellNew]
"NullFile"=""

[HKEY_CLASSES_ROOT\textfile]
@="Text Document"

Вот два способа указать значок

  1. Скажите Explorer, чтобы использовать значок по умолчанию для типа контента:
[HKEY_CLASSES_ROOT\.txt] 
@="textfile" 
"Content Type"="text/plain"
"PerceivedType"="text"

или 2. Укажите значок в текстовом файле следующим образом:

[HKEY_CLASSES_ROOT\textfile\DefaultIcon]
@="%SystemRoot%\\system32\\imageres.dll,-102"

Да, и, по крайней мере, для меня достаточно простого закрытия и повторного открытия Проводника (убедитесь, что все экземпляры закрыты), чтобы перезагрузить контекстное меню. Вам не нужно перезагружать всю машину.

нелюдь
источник
На моей стороне «Notepad ++» изменился HKEY_CLASSES_ROOT\.txtс @="Notepad++_file". Поэтому добавление HKEY_CLASSES_ROOT\Notepad++_fileс @="Textfile"сделал трюк. Спасибо, хорошая находка!
Тино
4

Вы не сказали, какую версию Windows вы используете - если это XP, вы можете загрузить TweakUI PowerToy от Microsoft (также описанную в Википедии ). Нажмите на Шаблоны и добавьте / удалите типы файлов для вашего сердца. Вот как это выглядит: введите описание изображения здесь

User5910
источник
3

Похоже, что другие решения здесь устарели. По крайней мере, ни один из них не работал для меня в Windows 10 v. 1709 Build 16299.192 ( Edit : все еще работает в версии 1809). Я провел некоторое тестирование на ВМ, и это то, что работает в Windows 10 1709, по состоянию на 2018.01.12:

Добавьте файл реестра:

Создайте новый файл реестра со следующим содержимым:

Windows Registry Editor Version 5.00

; new file type
[HKEY_CLASSES_ROOT\.xyz]
@="xyz"

; template
[HKEY_CLASSES_ROOT\.xyz\ShellNew]
"FileName"=""

; file type name
[HKEY_CLASSES_ROOT\xyz]
@="XYZ test file"

Замените xyzна расширение, которое вы хотели бы добавить. И замените XYZ test fileего именем на расширение файла (например, файл .scss будет «синтаксически удивительный файл таблицы стилей»). Если вы хотите использовать файл шаблона, см. Пояснение ниже.

Может быть необходимо перезапустить Windows Explorer после добавления файла реестра. Вы можете перезапустить explorer.exe, набрав в CMD следующее:

taskkill /f /im explorer.exe & start explorer.exe

введите описание изображения здесь

введите описание изображения здесь


Пояснение к коду:

[HKEY_CLASSES_ROOT\.xyz]
@="xyz"

Создаст новый тип файла в реестре.

[HKEY_CLASSES_ROOT\.xyz\ShellNew]
"FileName"=""

Это позволит вам использовать шаблон для всех новых файлов этого формата. Мы могли бы, например, написать "template.xyz"и создать новый файл с именем «template.xyz» и использовать его как шаблон. Поэтому каждый раз, когда вы создаете новый файл, он будет заполнен предварительно созданным содержимым. Как Эдуардо Молтени упомянул пути для файлов шаблона являются: %Userprofile%\Templates, %Allusersprofile%\Templatesили для всей системы %Systemroot%\ShellNew. В этом примере мы не указали имя шаблона, потому что не хотим его использовать.

[HKEY_CLASSES_ROOT\xyz]
@="XYZ test file"

Это будет имя типа файла как для контекстного меню, так и для вновь создаваемых файлов. Насколько я знаю, оставить это значение пустым не работает.

Икона:

Значок добавляется, когда Windows связывает программное обеспечение с типом файла.

острый гребень горы
источник
1
Отличный ответ, спасибо. Обратите внимание, что в Windows 10 %userprofile%\Templatesон переместился %appdata%\Microsoft\Windows\Templatesи %Allusersprofile%\Templatesперешел в%programdata%\Microsoft\Windows\Templates
TheImirOfGroofunkistan
2

Создайте простой текстовый файл и добавьте в него следующую строку:


Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.txt\ShellNew]
"NullFile"=""

Сохраните файл и переименуйте его расширение в файл .reg. Например, "myNewItem.reg". Убедитесь, что вы переименовали расширение, а не только имя файла, например (myNewItem.reg.txt)

Дважды щелкните файл, и он обновит ваш реестр.

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

Если вы откроете меню контента, чтобы увидеть, есть ли ваш новый элемент в списке, реестр будет восстановлен ...

Также попробуйте эту программу: http://sourceforge.net/projects/shellnewhandler/

Bnutoswa
источник
или я перезагружаюсь немедленно, я не могу заставить это работать в Windows 8.1. Понятия не имею почему.
Габриэль Стейплс
1

Раздел реестра:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew

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

WoodyElf
источник
0

Эта информация официально зарегистрирована Microsoft ; обычно предназначен для разработчиков, которые регистрируют свои собственные новые типы файлов.

Расширение Нового Подменю

Когда пользователь открывает меню « Файл» в проводнике Windows, первая команда - « Создать» . Выбор этой команды отображает подменю. По умолчанию он содержит две команды, Папка и Ярлык , которые позволяют пользователям создавать подпапки и ярлыки. Это подменю может быть расширено, чтобы включить команды создания файла для любого типа файла.

Чтобы добавить команду создания файла в подменю New , файлы вашего приложения должны иметь тип файла, связанный с ними. Включите подраздел ShellNew под ключом для расширения имени файла. Когда в меню « Файл » выбрана команда « Новый» , оболочка добавит ее в подменю « Новый» . Строка отображения команды будет описательной строкой, которая назначена ProgID программы.

Назначьте одно или несколько значений данных для подраздела ShellNew, чтобы указать метод создания файла. Доступные значения следуют.

  • Command: Выполняет приложение. Это значение REG_SZ, указывающее путь к приложению, которое будет выполнено. Например, вы можете настроить его на запуск мастера.
  • Data: Создает файл, содержащий указанные данные. Данные - это значение REG_BINARY с данными файла. Данные игнорируются, если указан либо NullFile, либо FileName.
  • FileName: Создает файл, который является копией указанного файла. FileName - это значение REG_SZ, в котором указан полный путь к файлу, который нужно скопировать.
  • NullFile: Создает пустой файл. NullFile не присваивается значение. Если указан NullFile, значения Data и FileName игнорируются.

И пример создания нового пустого mpy файла:

HKEY_CLASSES_ROOT
  (Default) = MyProgram.1
  MyProgram.1
   .myp
      ShellNew
         NullFile

Чтобы создать новый файл на основе определенного файла шаблона:

HKEY_CLASSES_ROOT
   .myp
      (Default) = MyProgram.1
      MyProgram.1
         ShellNew
            FileName: REG_SZ = "%ProgramData%\Microsoft\Windows\Templates\MyNewTemplate.myp"
Ян Бойд
источник