如何将项目添加到“新”上下文菜单?


117

当我右键单击任何地方时,我都可以选择添加具有指定扩展名的新文件。我想在此菜单中添加一些自定义文件,因此我可以右键单击并创建一个新的PHP文件。

我怎样才能做到这一点?



2
如果您有添加一个全新的文件扩展名(而不是简单地增加的问题NullFile/ FileName到现有的条目)在Windows 7,然后看到这个另一个问题... superuser.com/questions/588647/...
MrWhite

2
Ramesh的站点是手动添加条目的良好来源。
Synetech 2013年

Answers:


64

要将您选择的扩展名添加到列表中:创建一个文件,添加以下内容,将其另存为what.reg,然后运行它。

注意:将.png替换为您要添加的文件扩展名,然后将其替换为所需的任何东西。

Windows Registry Editor Version 5.00

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

资源



1
好决定。答案已编辑:)
th3dude

1
+1,这有效。我们如何拥有一个自定义文件名,例如“ index.php”,而不是“ New PHP file.php”?
fedmich 2012年

1
我必须运行该.reg文件两次才能使其正常运行。感谢您的回答。
阿卡什(Akash)2016年

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]

很酷的想法,能够使用文件作为模板!
Clay Nichols

1
如果有人想知道,该FileName条目似乎会覆盖NullFile其他答案中提到的条目。您似乎不需要删除现有NullFile值。但是,同时拥有这两个条目似乎确实使其他一些第三方实用程序感到困惑,例如NirSoft的ShellMenuNew。(Windows 7)
MrWhite

2
如果您将整个路径名指定给文件,则我认为它不必位于%Userprofile%Templates等文件中。
jiggunjer

3
如果要为同一程序创建两个不同模板的两个快捷方式,该怎么办?例如,我完美地使用了此方法来为TeXworks的“文章”模板创建上下文菜单项。我现在还想为TeXworks添加一个“ modified_article”模板。是否可以将两者都添加到上下文菜单?谢谢!
普拉哈

3
在Windows 8.1中,您列出的模板文件夹不起作用。我收到“访问被拒绝”错误。模板现在应该放在哪里,这显然是一个快捷文件夹,称为“连接”,它是一个隐藏的“特定于操作系统”的文件。因此,模板文件夹现在已移动。请参阅此链接以获取新的映射(jimmah.com/vista/Security/junctions.aspx)。显然C:\Users\USER_NAME\AppData\Roaming\Microsoft\Windows\Templates,例如,现在用于您自己的个人资料。
加布里埃尔·斯台普斯


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

要从列表中删除条目,这里是一个程序,允许您从GUI启用/禁用条目。比搜索注册表容易得多!

不幸的是,它不允许您添加条目。


这正是我所需要的,谢谢!一般情况下,你真正需要的是“新建文本文档” ...
安德鲁·

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. 告诉资源管理器对内容类型使用默认图标:
[HKEY_CLASSES_ROOT\.txt] 
@="textfile" 
"Content Type"="text/plain"
"PerceivedType"="text"

或2.在文本文件下指定一个图标,如下所示:

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

哦,至少对我来说,仅关闭并重新打开资源管理器(确保关闭所有实例)就足以重新加载上下文菜单。您无需重新启动整个计算机。


在我身边“记事本++”改HKEY_CLASSES_ROOT\.txt@="Notepad++_file"。因此,加入HKEY_CLASSES_ROOT\Notepad++_file@="Textfile"做的伎俩。谢谢,很好找到!
Tino

4

您没有说使用的是哪个版本的Windows,如果是XP,则可以从Microsoft 下载TweakUI PowerToy(也包含在Wikipedia中)。单击模板,然后在您的内容中添加/删除文件类型。看起来是这样的: 在此处输入图片说明


3

看来这里的其他解决方案已经过时了。在Windows 10 v.1709 Build 16299.192中,这些功能至少对我没有作用(编辑:在1809版中仍然有效)。我在VM中进行了一些测试,截至2018.01.12,这是在Windows 10 1709中有效的方法:

添加注册表文件:

创建一个新的注册表文件,其内容如下:

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资源管理器。您可以通过在CMD中键入以下内容来重新启动explorer.exe:

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

在此处输入图片说明

在此处输入图片说明


代码说明:

[HKEY_CLASSES_ROOT\.xyz]
@="xyz"

将在注册表中创建一个新的文件类型。

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

这将使您可以将模板用于此文件格式的所有新文件。例如,我们可以编写"template.xyz"并制作一个名为“ template.xyz”的新文件,并将其用作模板。因此,每次创建新文件时,都会填充预制内容。由于爱德华多的Molteni提到的模板文件的路径是: %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/


无论我是否立即重启,我都无法在Windows 8.1中正常运行。不知道为什么。
加布里埃尔·斯台普斯

1

注册表项:

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

不能更改以完成“新建”上下文菜单上显示或不显示的内容。如果更改该值,则下次您右键单击并弹出“新建”上下文菜单时,资源管理器将覆盖该值。试试看,您会明白我的意思。


0

这些信息都是Microsoft正式记录的;通常适用于注册自己的新文件类型的开发人员。

扩展新子菜单

用户在Windows资源管理器中打开“ 文件”菜单时,第一个命令是“ 新建”。选择此命令将显示一个子菜单。默认情况下,它包含两个命令FolderShortcut,它们允许用户创建子文件夹和快捷方式。该子菜单可以扩展为包括针对任何文件类型的文件创建命令。

要将文件创建命令添加到“ 新建”子菜单中,您的应用程序的文件必须具有与之关联的文件类型。在文件扩展名的键下包含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"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.