![在上下文菜单中创建一个具有自定义名称的新“新建”子菜单](https://linux22.com/image/1538857/%E5%9C%A8%E4%B8%8A%E4%B8%8B%E6%96%87%E8%8F%9C%E5%8D%95%E4%B8%AD%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%85%B7%E6%9C%89%E8%87%AA%E5%AE%9A%E4%B9%89%E5%90%8D%E7%A7%B0%E7%9A%84%E6%96%B0%E2%80%9C%E6%96%B0%E5%BB%BA%E2%80%9D%E5%AD%90%E8%8F%9C%E5%8D%95.png)
我喜欢尝试各种编码,每次尝试某件事时都要创建 html、css、js 等文件,这很累人。为了解决这个问题,我创建了模板 html、css 等文件,并将它们添加到上下文菜单中的“新建”中 (如何向“新”上下文菜单添加项目?)。
目前,我添加了 4 个项目:html、css、js 和 php。“新建”子菜单有点拥挤。现在我在想是否可以创建一个具有自定义名称(例如“编码”)的新子菜单,以便我可以添加这些文件。实际的“新建”子菜单不会那么拥挤,我可以在新子菜单下轻松访问这些编码文件。
再想想,这个新子菜单不一定非要放在上下文菜单的右侧。它可以放在“新建”菜单内。我只想将这四个文件分组。
最坏的情况是,我可以重新排序“新建”子菜单吗?我想将这四个堆叠在顶部或底部。
更新:我创建了一个存储库此功能。请随意查看。
答案1
我一直在寻找此问题的解决方案,但我想到最接近我想要的是在上下文菜单中添加一个新项,该新项会调用一个脚本来复制模板文件。
这不是我真正想要的,但这可能会给别人一个想法,所以无论如何我都会发布它。
首先,我寻找一种向上下文菜单添加项目的方法。例如,命令提示符。以下注册表项可以完成这项工作。
Windows Registry Editor Version 5.00
; Directory\Background\shell => on empty space
[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd]
"Icon"="cmd.exe,0"
@="Command Prompt"
[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd\command]
@="cmd.exe"
; Directory\shell => on a folder
[HKEY_CLASSES_ROOT\Directory\shell\cmd]
@="Command Prompt"
"Icon"="cmd.exe,0"
[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /k cd %1"
接下来,我想添加一个创建文件的项目,例如 CSS 文件。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\CSS]
@="Cascading Style Sheet Document"
"Icon"="%SystemRoot%\\SysWow64\\SHELL32.dll,69"
[HKEY_CLASSES_ROOT\Directory\Background\shell\CSS\command]
@="C:\\Windows\\CustomNew\\css.bat"
与命令提示符注册表项类似,这将向上下文菜单添加一个项目,但它不是运行应用程序,而是调用一个 bat 文件。bat 文件的内容:
@echo off
copy C:\Windows\ShellNew\css.css %cd%
rename css.css "New Cascading Style Sheet Document.css"
我有一个css.css
模板文件C:\Windows\ShellNew
。我只需在右键单击并选择的目录中复制该模板文件即可Cascading Style Sheet Document
。
当然,我不会使用这种方法。这只会让事情变得更加复杂。想象一下,在上下文菜单中直接显示所有 bat、css、html、js 和 php 文件。我仍然需要一个更好的解决方案。
更新:
我可能找到解决办法了。原文:在 Windows 7 及更高版本的桌面和“我的电脑”上下文菜单中为程序添加级联菜单 - AskVG
将自定义菜单添加到上下文菜单:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\Coding]
"Icon"="C:\\Windows\\CustomNew\\coding.ico"
"MUIVerb"="Coding"
"SubCommands"="cmd;css;html;js;php;bat"
"Position"="Top"
为了使此菜单正常工作,我们需要定义这些命令,,,cmd
等。例如,定义命令提示符:css
html
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\cmd]
@="Command Prompt"
"Icon"="cmd.exe,0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\cmd\command]
@="cmd.exe"
单击菜单上的命令提示符将运行cmd.exe
。这很简单。棘手的部分是添加创建新文件的项目/应用程序。
让我们从 CSS 文件开始。以下注册表将把该项目添加到菜单中。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\css]
@="Cascading Style Sheet Document"
"Icon"="%SystemRoot%\\System32\\shell32.dll,-151"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\css\command]
@="C:\\Windows\\CustomNew\\css.bat"
虽然我们有一个名为“层叠样式表文档”的新项目,但通常单击它不会执行任何操作。为了使其在当前文件夹中创建一个新文件,我们调用了一个脚本。
我为想要创建的每种文件类型都准备了一个批处理脚本;bat.bat
、、、等css.bat
,html.bat
并将它们放在中C:\Windows\CustomNew
。此外,我还将模板文件、、、bat.bat
等放在了中。css.css
html.html
C:\Windows\ShellNew
因此,每当我单击菜单上的“层叠样式表文档”时,我都会调用它css.bat
来复制 css 模板文件并将其放置在当前文件夹中。
css.bat
文件:
@echo off
copy C:\Windows\ShellNew\css.css "%cd%"
rename css.css "New Cascading Style Sheet Document.css"
最好是创建一个新的 css 文件而不调用任何脚本,但我认为这是不可能的。不过,如果有人有任何想法,我很乐意听听。
看看它。它很漂亮:)
答案2
答案取自这里
要在“新建”菜单中添加项目:
- 在运行对话框中输入 regedit 并按 Enter。现在展开“HKEY_CLASSES_ROOT”键。
- 现在在“新建”菜单中查找您想要添加的文件类型,例如,要添加 MP3 文件类型,请查找 .MP3 键。
- 右键单击它并选择“新建 -> 键”,并将其命名为“ShellNew”。
- 在右侧窗格中,右键单击并选择“新建 -> 字符串值”。将其命名为“NullFile”并按 Enter。
- 就是这样。您将立即在“新建”菜单中获得文件类型条目。
答案3
我创建了附加的 reg 文件“模板”,它有助于在 Windows 10 中创建带有两个子菜单的菜单。希望您觉得这很有用。完成子菜单后,删除 reg 文件中的所有注释。
;------------------------------------------------- Windows 注册表编辑器版本 5.00 ;添加子菜单到上下文菜单空白模板 ;(1) 将“MUIVerb”=“MyNewMenu”更改为两者的顶级标题 ;目录和背景菜单(两者都应该具有相同的标题) ;(2)将所有 MyMenu1 更改为整个子菜单的唯一标识符 ;(3)将“MUIVerb”=“FirstCommand”更改为第一个命令名称 ;(4)将 MUIVerb FirstCommand 后面的命令行 (@) 更改为所需的第一个 命令行 ;(5)将“MUIVerb”=“SecondCommand”更改为第二个命令名称 ;(7)将 MUIVerb SecondCommand 后面的命令行 (@) 更改为所需的秒数 命令行 ;(8) 如果需要,更改图标 ;(9)将文件保存为.reg文件 ;右键单击目录时将显示上下文菜单 [HKEY_CLASSES_ROOT\Directory\shell\MyMenu1] ;目录级菜单标题 “MUIVerb”=“我的新菜单” “图标”=“cmd.exe” “ExtendedSubCommandsKey”=“目录\\ContextMenus\\MyMenu1” ;右键单击目录背景时会显示上下文菜单 [HKEY_CLASSES_ROOT\Directory\background\shell\MyMenu1] ;背景级菜单标题 “MUIVerb”=“我的新菜单” “图标”=“cmd.exe” “ExtendedSubCommandsKey”=“目录\\ContextMenus\\MyMenu1” ;子菜单下的第一个命令 [HKEY_CLASSES_ROOT\Directory\ContextMenus\MyMenu1\shell\open] “MUIVerb”=“第一个命令” “图标”=“cmd.exe” [HKEY_CLASSES_ROOT\Directory\ContextMenus\MyMenu1\shell\open\命令] @="cmd.exe /s /k pushd \"%V\"" ;子菜单下的第二个命令 [HKEY_CLASSES_ROOT\Directory\ContextMenus\MyMenu1\shell\runas] “MUIVerb”=“第二命令” “图标”=“cmd.exe” “HasLUAShield”=“” [HKEY_CLASSES_ROOT\Directory\ContextMenus\MyMenu1\shell\runas\命令] @="cmd.exe /s /k pushd \"%V\"" ;-------------------------------------------------