在Windows中安装很多软件时,鼠标的右键菜单中会被各种软件塞满很多没用的选项。本文主要讲述了在安装了Visual Studio 2017、MPC-HC、WSL等软件后的右键菜单管理。
⚠️注:操作前请自行备份注册表
- 探析注册表📝
- 将WSL添加到右键菜单
- 管理“在Visual Studio中打开”
- 管理右键“CMD”
- 关于Windows Media Player
- 移除“Add to MPC-HC Playlist”和“Play with MPC-HC”
- 关于Powershell
- 删除“使用Windows Defender扫描”
- 删除“共享”
- 删除“🐧通过QQ发送到”
- 参考资料
探析注册表📝
不幸的是,Windwos下的右键菜单由注册表中的多个目录管理。一般而言,这三个目录是
HKEY_CLASSES_ROOT\*\shell HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers HKEY_CLASSES_ROOT\AllFileSystemObjects\ShellEx
在 文件夹上按住鼠标右键 所显示的菜单由注册表中的以下两个目录管理
HKEY_CLASSES_ROOT\Directory\shell HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers
在 文件夹空白处按住鼠标右键 所显示的菜单由注册表中的以下目录管理
HKEY_CLASSES_ROOT\Directory\Background\shell
如何打开注册表📝(Regedit)
- 在Windows 10: 打开开始菜单,直接输入regedit,回车
- 在Windows 7: 按住WIN+R,输入regedit,回车
移除’Shell’目录中的项
这里以移除VLC的右键菜单为例,当鼠标在一个文件夹上右键时,会出现”Add to VLC media player’s Playlist”和”Play with VLC media player”, 以下是一种隐藏的办法。这种方法同样适用于移除 Git Bash Here 和 Git GUI 。
将选项隐藏(移除VLC的右键菜单为例)
🎉 该方法也适用于 HKEY_CLASSES_ROOT\Directory\Background\shell
(文件夹空白处按住鼠标右键)
在以下两个注册表目录下 新建一个名为LegacyDisable
的 字符串 值
HKEY_CLASSES_ROOT\Directory\shell\AddtoPlaylistVLC HKEY_CLASSES_ROOT\Directory\shell\PlayWithVLC
Remove_Shell_VLC
Remove_Shell_VLC
将选择项移动到Extended Context Menu
(Shift+鼠标右键所显示的菜单)
在上文提到的两个注册表目录下 新建一个名为Extended
的字符串值
⚠️注:当
Extended
和LegacyDisable
这两个字符串值同时存在于一个目录中时,LegacyDisable
会覆盖掉Extended
,也就是普通菜单和Shift扩展菜单都不显示这个选项。
移除Shellex
目录中的项(以”Move to Dropbox”为例)
在Shellx目录下的菜单只能删除或禁用它,而不能像shell一样只将其移动到Extended Context Menu.因此,在shell目录下使用添加LegacyDisable
或Extended
字符串来临时隐藏它的技巧是不被允许的。
Shellx
目录下的项名有时很难判断它是指向哪个软件,这里以Dropbox安装后留下的”Move to Dropbox”为例
在DropboxExt目录下将字符串值为(Default)的数值数据前加一些 英文破折号-
这样可以既不破坏原有数据,又能在想要在菜单中重新显示它时快速恢复。
Remove_Shellx_Dropbox
Remove_Shellx_Dropbox
通过文件类型探索其他目录
部分软件只有在右键单击特定的文件才会显示出。删除的方法和上文提到的shell
能使用的两种技巧一致,在此不做赘述。
修改顺序
Windows默认安装名称来对菜单上下位置排序。在不使用第三方应用的情况下,只能通过修改注册表项目名称来修改项目在上下文菜单中的位置。
- https://superuser.com/questions/17543/rearrange-reduce-windows-context-menu
- https://superuser.com/questions/891826/how-to-change-the-order-of-send-to-menu-items-on-windows-7
- https://www.lopesoft.com/index.php/en/
将WSL添加到右键菜单
WSL是Windows10的一个子系统,提供了一个Linux的虚拟环境,通过将WSL添加到鼠标右键菜单可以实现类似于Linux桌面环境下的’Open Terminal Here’功能。将WSL添加到右键菜单后,在目录空白处 (此教程不适用于文件夹上右键菜单打开) 可直接打开Bash定位到当前目录。
注:本文基于在Windows Store中安装的Ubuntu,详细安装指南请参考MSDN的内容
- 下载bash.reg,双击运行。
- 将bash.ico下载到任意目录下。
- 进入
注册表编辑器
(Win+R➡输入Regedit
),定位到HKEY_CLASSES_ROOT\Directory\Background\shell\WSL
,修改Icon
下的数据为bash.ico
存放的位置即可。
WSL
WSL
# 2019.7 更新
大概在Windows10 1809/1903 以后的版本中,系统自动加入了 “Open Linux shell here”/”在此处打开 Linux Shell”的右键菜单,但不带有图标
HKEY_CLASSES_ROOT\Directory\Background\shell\WSL
HKEY_CLASSES_ROOT\Directory\shell\WSL
HKEY_CLASSES_ROOT\Drive\shell\WSL
这里是用于恢复原系统WSL右键菜单的文件 WSL_1903
可以按此教程删除它并换用上面的:https://www.tenforums.com/tutorials/110473-add-remove-open-linux-shell-here-context-menu-windows-10-a.html
管理“在Visual Studio中打开”
临时隐藏“在Visual Studio中打开”(推荐)
- 目录背景下右键菜单设置
方法:在上文的\HKEY_CLASSES_ROOT\Directory\Background\shell\AnyCode
(而不是command)目录下点击鼠标右键➡新建➡DWORD (32位)值,将其重命名为HideBasedOnVelocityId
,并双击将数值数据
设置为006698a6
(十六进制) - 目录图标上右键菜单设置
HKEY_CLASSES_ROOT\Directory\shell\AnyCode
(而不是command)目录下点击鼠标右键➡新建➡DWORD (32位)值,将其重命名为HideBasedOnVelocityId
,并双击将数值数据
设置为006698a6
(十六进制)
直接移除“在Visual Studio中打开”
删除以下两项注册表即可
HKEY_CLASSES_ROOT\Directory\Background\shell\AnyCode HKEY_CLASSES_ROOT\Directory\shell\AnyCode
将“在Visual Studio中打开”移动到Extended Context Menu
Extended Context Menu就是在按住Shift+鼠标右键
时显示的目录,这种方法适合不常用但仍旧要用到此功能的人,在按住Shift+鼠标右键
时能显示出此功能。
方法:在上文的两个 ../Anycode (而不是command)目录下点击鼠标右键➡新建➡字符串值➡输入Extended
具体步骤如下图所示
Change_Extended_Visual Studio
Change_Extended_Visual Studio
管理右键“CMD”
永久隐藏鼠标右键下的“CMD”
在 HKEY_CLASSES_ROOT\Directory\shell\cmd
下将 ShowBasedOnVelocityId
修改为 HideBasedOnVelocityId
,这样将会在文件夹上按住鼠标右键时不会显示CMD。
在 HKEY_CLASSES_ROOT\Directory\Background\shell\cmd
下将 ShowBasedOnVelocityId
修改为 HideBasedOnVelocityId
,这样在文件夹空白处按住鼠标右键时不会显示CMD。
一般数值数据设置为 0x00639bc8
(十六进制),非必要时不需要改动数值数据,只需重命名字符串即可。
关于Windows Media Player
Add to MPC-HC Playlist&Play with MPC-HC
Add to MPC-HC Playlist&Play with MPC-HC
移除“添加到 Windows Media Player 列表”
- 使用 Remove_Add_to_Windows_Media_Player_list_context_menu.reg 以在右键菜单中 删除 “添加到 Windows Media Player 列表”
- 使用 Add_Add_to_Windows_Media_Player_list_context_menu.reg 以在右键菜单中 恢复 “添加到 Windows Media Player 列表”
移除“使用 Windows Media Player 播放”
- 使用 Remove_Play_with_Windows_Media_Player_context_menu.reg 以在右键菜单中 删除 “使用 Windows Media Player 播放”
- 使用 Add_Play_with_Windows_Media_Player_context_menu.reg 以在右键菜单中 恢复 “使用 Windows Media Player 播放”
参考:
- https://www.tenforums.com/tutorials/83163-remove-add-windows-media-player-list-context-menu-windows-10-a.html
- https://www.tenforums.com/tutorials/83169-remove-play-windows-media-player-context-menu-windows-10-a.html
移除“移动到Onedrive”
该行为在右键点击文件时会出现,同时出现在 Extended Context Menu
方法:直接删除 [HKEY_CLASSES_ROOT*\shellex\ContextMenuHandlers\ FileSyncEx] 字段
参考资料:https://www.majorgeeks.com/files/details/add_or_remove_move_to_onedrive_context_menu_in_windows_10.html
移除“Add to MPC-HC Playlist”和“Play with MPC-HC”
MPC-HC 是一款视频播放软件
若在安装时勾选了最后一个选项,则会在右键目录菜单中出现“Add to MPC-HC Playlist”
MPC-HC Installation
MPC-HC Installation
打开MPC-HC–>查看–>选项–>以管理员身份运行–>资源管理器关联菜单–>取消勾选目录
Change_Extended_MPCHC
Change_Extended_MPCHC
关于Powershell
删除/隐藏原版Powershell
若要彻底删除:请参考 WSL部分
若想暂时隐藏:先获取目录权限,将以下路径的改成 ShowBasedOnVelocityId
改成 HideBasedOnVelocityId
HKEY_CLASSES_ROOT\Directory\Background\shell\Powershell
HKEY_CLASSES_ROOT\Directory\shell\Powershell
删除Extended Context Menu下的Powershell
只要将以下两个目录下的ShowBasedOnVelocityId
修改成HideBasedOnVelocityId
,操作前须获取当前用户的目录权限。
HKEY_CLASSES_ROOT\Directory\Background\shell\Powershell HKEY_CLASSES_ROOT\Directory\shell\Powershell
Hide_Poweshell
Hide_Poweshell
增强版的CMD,Powershell和Git右键菜单
以CMD(Command Prompt)为例,具体的注册表相关目录结构如下
- HKEY_CLASSES_ROOT\Directory\shell\01MenuCmd –> Directory\ContextMenus\MenuCmd
- HKEY_CLASSES_ROOT\Directory\background\shell\01MenuCmd –> Directory\ContextMenus\MenuCmd
- HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuCmd
- open –> Command Prompt
- runas –> Command Prompt Elevated
由于该操作过于复杂,下面直接给出该实现的Reg文件
- 若同时想在普通右键菜单和扩展右键菜单(Extended Context Menu)下使用
- 使用 Command Prompt.reg 以在右键菜单中 添加 增强版Command Prompt
- 使用 Powershell.reg 以在右键菜单中 添加 增强版Command Prompt
- 使用 Git.reg 以在右键菜单中 添加 增强版Git
- 若只想在扩展右键菜单(Extended Context Menu)下使用
- 使用 Extended Command Prompt.reg 以在右键菜单中 添加 增强版Extended Command Prompt
- 使用 Extended Powershell.reg 以在右键菜单中 添加 增强版Extended Powershell
- 使用 Extended Git.reg 以在右键菜单中 添加 增强版Extended Git
删除“使用Windows Defender扫描”
在目录图标上右键会出现该菜单
打开注册表,定位到 HKEY_CLASSES_ROOT\CLSID\{09A47860-11B0-4DA5-AFA5-26D86198A780}
,删除 {09A47860-11B0-4DA5-AFA5-26D86198A780}
下面提供便捷的删除/恢复文件
- 使用 Remove Windows Defender Option from Context Menu.reg 来 删除 右键菜单中的“使用Windows Defender扫描”
- 使用 Restore Windows Defender Option in Context Menu.reg 来 恢复 右键菜单中的“使用Windows Defender扫描”
删除“共享”
Sharing
Sharing
打开注册表,定位到HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers
, 在ModernSharing
的数据前加上一些英文破折号----
Disable_Sharing
Disable_Sharing
删除“🐧通过QQ发送到”
由于目前最新版本的QQ仍旧支持在设置中关闭这个功能,所以更推荐于在设置中关闭而不是修改注册表。
Remove_QQ
Remove_QQ
参考资料
- 探析注册表
- https://www.howtogeek.com/howto/windows-vista/how-to-clean-up-your-messy-windows-context-menu/
- WSL相关
- https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
- https://github.com/Microsoft/WSL/issues/603
- https://github.com/Manouchehri/bash-WSL-context-menu
- Visual Studio相关
- https://developercommunity.visualstudio.com/content/problem/26397/disable-context-menu-for-open-in-visual-studio.html
- Github中的注册表大全
- https://github.com/AmrEldib/WindowsContextMenuCustomizations
- MPC-HC相关
- http://codecs.forumotion.net/t1921-disable-folder-context-menu
- https://www.youtube.com/watch?v=Djxk1GcXqQI
- 增强版的CMD和Powershell右键菜单
- https://blogs.msdn.microsoft.com/andrew_richards/2017/03/01/enhancing-the-open-command-prompt-here-shift-right-click-context-menu-experience/
- 删除“使用Windows Defender扫描”
- https://www.askvg.com/tip-remove-scan-with-windows-defender-option-from-context-menu-in-windows-10/
- 删除“共享”
- http://www.thewindowsclub.com/remove-share-button-context-menu-windows-10
- Windows注册表脚本文件的编写
- http://blog.csdn.net/shuilan0066/article/details/5983129