右键菜单(Context Menu)详解

看着满地的右键菜单实在是烦,找个文章,手动删掉了很多,爽了。。。不过这篇文章的原地址找不到了,只有google cache了。。。
1.构成右键菜单的注册表项一览:

       右键菜单中的项目用于不同的对象——文件、文件夹、驱动器和 Namespace 对象,对应的,不同操作对象的右键菜单在注册表中的位置也不同。

1.1 应用于文件夹的右键菜单项位于注册表中如下位置:

[HKEY_CLASSES_ROOT\Folder\Shell\]

[HKEY_CLASSES_ROOT\Directory\Shell\]

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\]

[HKEY_CLASSES_ROOT\Folder\ShellEx\ContextMenuHandlers\]

[HKEY_CLASSES_ROOT\Directory\ShellEx\ContextMenuHandlers\]

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\]

特别的,根据不同的文件夹类型,还有更进一步的右键菜单项:

1.1.1 对于音乐文件夹,右键菜单将从以下位置加载项:

[HKEY_CLASSES_ROOT\SystemFileAssociations\Directory.Audio\shell\]

[HKEY_CLASSES_ROOT\SystemFileAssociations\Directory.Audio\shellex\ContextMenuHandlers\]

1.1.2 对于视频文件夹,右键菜单将从以下位置加载项:
[HKEY_CLASSES_ROOT\SystemFileAssociations\Directory.Video\shell\]

[HKEY_CLASSES_ROOT\SystemFileAssociations\Directory.Video\shellex\ContextMenuHandlers\]

1.1.3 对于图片文件夹,右键菜单将从以下位置加载项:
[HKEY_CLASSES_ROOT\SystemFileAssociations\Directory.Image\shell\]

[HKEY_CLASSES_ROOT\SystemFileAssociations\Directory.Image\shellex\ContextMenuHandlers\]

1.2 应用于驱动器的右键菜单项位于注册表中如下位置:

[HKEY_CLASSES_ROOT\Drive\Shell\]

[HKEY_CLASSES_ROOT\Folder\Shell\]

[HKEY_CLASSES_ROOT\Drive\ShellEx\ContextMenuHandlers\]

[HKEY_CLASSES_ROOT\Folder\ShellEx\ContextMenuHandlers\]

1.3 要移除 Namespace 图标(例如我的电脑、回收站等),可以检查以下位置:

[HKEY_CLASSES_ROOT\Folder\Shell\]

[HKEY_CLASSES_ROOT\Folder\ShellEx\ContextMenuHandlers\]

[HKEY_CLASSES_ROOT\CLSID\{Namespace-CLSID}\shell\]

[HKEY_CLASSES_ROOT\CLSID\{Namespace-CLSID}\shellex\ContextMenuHandlers\]

1.4.应用于文件的右键菜单项位于注册表中如下位置:

[HKEY_CLASSES_ROOT\<ProgID>\shellex\ContextMenuHandlers\]

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\]

[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\]

[HKEY_CLASSES_ROOT\*\shell\]

注意:[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\]项可以用于文件和文件夹

例如:.lnk 快捷方式文件的右键菜单将从以下位置构建:

[HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandlers\]

[HKEY_CLASSES_ROOT\exefile\shell\]

[HKEY_CLASSES_ROOT\exefile\shellex\ContextMenuHandlers\]

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\]

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\]

[HKEY_CLASSES_ROOT\*\shell\]

[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\]

2 常见问题:

Q1:安装软件之后,如何去掉右键菜单中不想要的项?
A1:通常,只需要到[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\]分支下找到相应的内容并删除即可。如果在该分支下没有找到,可以尝试到[HKEY_CLASSES_ROOT\文件类型\]分支寻找,或者在注册表中搜索显示在右键菜单中的内容

Q2:如何删除 IE 右键菜单中不想要的项?
A2:非标准的右键菜单项可以从[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\]分支下找到并删除,删除后需要重启 IE 才会生效

对 IE 其他的功能进行限制,详细的信息可以参考:
http://www.winguides.com/registry/display.php/442/

据目前所知,无法去除标准的 IE 右键菜单项,只能禁用整个右键菜单,方式是找到[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Restrictions]分支,在右边窗口新建 DWORD 值项 NoBrowserContextMenu = 1。如果你要对特定的用户做出限制,那么可以用那个用户登录系统,然后打开注册表编辑器,找到 HKEY_CURRENT_USER 分支下相同的位置设置。

Q3:如何恢复右键菜单中的"发送到"项:
A3:找到[HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\Send To]分支,没有的话就建立,然后再右边窗口新建字符串值"默认"项,设值为{7BA4C740-9E81-11CF-99D3-00AA004AE837}
或者下载并导入下面这个 .reg 文件:http://windowsxp.mvps.org/reg/sendto.reg

3 右键菜单检查和禁用工具

ShellExView (FreeWare)
官方网站:www.nirsoft.net/utils/shexview.html(可能需要使用代理连接)
中文语言文件下载:http://www.skycn.com/soft/21912.html (请注意对应的版本)
注意:ShellExView 只列出 shellex 分支下的内容,而不列出 shell 分支下的内容

[参考资料]
http://windowsxp.mvps.org/context_folders.htm
http://www.jfitz.com/tips/rclick_custom.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注