在 Windows 7 中,当您在 Windows 资源管理器中右键单击时按住 Shift 键时,会出现诸如“复制为路径“,”在此处打开命令窗口“, 或者更多 ”发给“选项,将添加到上下文菜单中,具体取决于您所单击的项目。
有什么办法可以得到这些额外的东西永久,而不用按住 Shift?
我希望它可以在不安装额外的 shell 扩展的情况下完成(见下文)——更多地考虑注册表破解或其他东西……
更新:
解决了“在此处打开命令窗口“,尚未”复制为路径“!
在我的 XP 系统上,我曾经安装智能启动菜单仅适用于随附的 shell 扩展,提供非常有用的 '复制路径名','复制短路径名','使用命令行参数运行' 和 '在 DOS 框中打开' 菜单项,没有需要按住 Shift 或任何其他“修饰键”。
答案1
这似乎就是您正在寻找的:http://www.techspot.com/guides/210-edit-windows-extended-context-menu/
这需要使用一个小型软件实用程序“ShellMenuView”,它不需要安装,并且与“从 Windows 98 到 Windows 7 x64 的所有内容”兼容。您可以下载该实用程序这里(32 位|64 位)。
答案2
我从未尝试完全禁用 Shift 菜单,但我不建议这样做,因为如果您知道如何控制进入主菜单和非 Shift 菜单的内容,它实际上是清理主上下文菜单的非常有用的工具。这是一件相当容易的事情,但首先要了解一些基础知识:
处理单个文件或最多 15 个选定文件的所有上下文菜单项都可以在这里找到:
HKEY_CLASSES_ROOT\*\shell
文件夹相关操作分为 2 类:右键单击背景时可用的操作和右键单击文件夹时可用的操作。它们可以在这里找到:
HKEY_CLASSES_ROOT\Directory\Background\shell
HKEY_CLASSES_ROOT\Directory\shell
驱动器在这里有自己的密钥:
HKEY_CLASSES_ROOT\Drive\shell
上下文菜单命令的结构如下
HKEY_CLASSES_ROOT\(*,Directory or Drive)\shell\(Command's Main Key)
HKEY_CLASSES_ROOT\(*,Directory or Drive)\shell\(Command's Main Key)\command <=this will store the executed command when when the context menu item related to this key is selected
上下文菜单中的命令条目将具有与主键相同的名称,除非您通过MUIverb
在主键下创建一个名为的字符串值来指定不同的名称。例如,您可以创建一个名为的字符串值MUIverb
并将其值设置为新名称("MUIverb"="New Name"
)。
当命令在主键下具有名为 Extended 的字符串值时,该命令将位于扩展的 shift 中。如果您希望它位于主 shell 上下文菜单中,请删除“Extended”字符串值条目。如果您想要将某些内容转移到扩展菜单,只需在其主键中输入“Extended”。您还可以通过在同一个键中输入另一个字符串值为菜单项指定一个图标。例如:"Icon"="C:\Windows\system32\SHELL32.dll,133"
或"Icon"="C:\Pictures\Icons\SomeRandomIcon.ico"
。
不幸的是,微软并不一致。你不会在我列出的地方找到你想要的一切。很多东西都在 shellex 中(例如复制为路径),并且按照与我告诉你的不同规则运行。
对于复制为路径的情况,我只是从上下文菜单中删除了它,并创建了自己的路径,我将其附加在这里以方便您使用。打开记事本,复制我在此处放置的每个 reg 文件的内容。右键单击它们并选择合并。
复制为路径 - 从 Shift Menu.reg 中删除 MS Vanilla 版本:
Windows Registry Editor Version 5.00
[-HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\CopyAsPathMenu]
在常规 menu.reg 中复制为路径启用
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Copy as Path]
"Icon"="C:\\Windows\\system32\\SHELL32.dll,133"
[HKEY_CLASSES_ROOT\*\shell\Copy as Path\command]
@="cmd.exe /c echo %1|clip"
[HKEY_CLASSES_ROOT\Directory\shell\Copy as Path]
"Icon"="C:\\Windows\\system32\\SHELL32.dll,133"
[HKEY_CLASSES_ROOT\Directory\shell\Copy as Path\command]
@="cmd.exe /c echo %1|clip"
[HKEY_CLASSES_ROOT\Directory\Background\shell\Copy as Path]
"Icon"="C:\\Windows\\system32\\SHELL32.dll,133"
[HKEY_CLASSES_ROOT\Directory\Background\shell\Copy as Path\command]
@="cmd.exe /c echo %V|clip"
在 shift menu.reg 中复制为路径启用 - 带引号
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Copy as Path (With Quotes)]
"Extended"=""
"Icon"="C:\\Windows\\system32\\SHELL32.dll,133"
[HKEY_CLASSES_ROOT\*\shell\Copy as Path (With Quotes)\command]
@="cmd.exe /c echo \"%1\"|clip"
[HKEY_CLASSES_ROOT\Directory\shell\Copy as Path (With Quotes)]
"Extended"=""
"Icon"="C:\\Windows\\system32\\SHELL32.dll,133"
[HKEY_CLASSES_ROOT\Directory\shell\Copy as Path (With Quotes)\command]
@="cmd.exe /c echo \"%1\"|clip"
[HKEY_CLASSES_ROOT\Directory\Background\shell\Copy as Path (With Quotes)]
"Extended"=""
"Icon"="C:\\Windows\\system32\\SHELL32.dll,133"
[HKEY_CLASSES_ROOT\Directory\Background\shell\Copy as Path (With Quotes)\command]
@="cmd.exe /c echo \"%V\"|clip"
现在,您可以在 RegEdit.exe 中处理注册表,但它是一个功能极其有限的工具。我只建议您编写 .reg 文件并根据需要合并它们。这也将使您在全新安装 Windows 时轻松重新应用更改。您还可以通过将单个键导出为 .reg 文件来导出您在 RegEdit 中所做的更改。
答案3
不幸的是,对于CopyAsPathMenu
(GUID{f3d06e7c-1e45-4a26-847e-f9fcdee59be0}) Windows 7 自带的 shell “扩展”,因为它的QueryContextMenu
方法具有所有基于标志检查的有用内容CMF_EXTENDEDVERBS
。
理论上,你可以通过拆解来看到这一点SHELL32.dll!?QueryContextMenu@CCopyAsPathMenu@@UAGJPAUHMENU__@@IIII@Z
,但如果你不知道我使用的是什么月球语言,那么你还需要学习很多东西才能理解;其中一些可能位于 Windows 调试工具帮助文件 ( debugger.chm
) 中。