尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Windows 11 右键菜单大作战:添加、删除、排序

Windows 11 右键菜单大作战:添加、删除、排序 特别声明本博客长期遭受 51CTO 盗文、剽窃反复投诉对方置若罔闻行为非常可耻你的优质文章也极有可能已被 51CTO 盗用详情参见《51CTO一个抄袭剽窃的流氓网站》https://laurence.blog.csdn.net/article/details/162671992本文多处嵌入此声明盗用此文即传播了此声明文章目录1. 展开全部菜单项2. 右键菜单项在注册表中的位置3. 两种性质不同的右键菜单项3.1 不存在对应配置项或无法移除只能禁用的菜单项3.2 传统菜单项4. 控制右键菜单项排序5. 右键菜单项大放送5.1 删除菜单项在此处打开终端5.2 添加菜单项打开 Cmd5.3 添加菜单项打开 Git Bash5.4 添加菜单项打开 PowerShell5.5 添加菜单项打开 MSVC5.6 添加菜单项复制 URI 路径5.7 添加菜单项统计目录大小技术人员对右键菜单还是有不少定制化需求的除了基于当前目录打开多种终端外可以将一些常用的基于当前目录执行的命令或脚本添加到右键菜单中方便随时执行。最近集中整理了一下个人电脑上的右键菜单写篇文章总结一下以备后用。之前本博客零星介绍过一些在右键菜单中添加定义菜单项的操作包括《在Windows右键菜单中添加在此处打开命令窗口(Open command window here)》《在 Windows 上创建“从此处打开 MSVC”右键菜单》《在Windows右键菜单中添加此处打开Anaconda / Conda》不过都是案例没有系统地介绍过 Windows 的右键编辑机制。Windows 11 出现之后右键菜单的一些机制又发生了变化过去的一些处理方法比如删除某些菜单项不再有效今天就写篇文章系统性地总结一下吧。当然你可以选择安装第三方工具来处理右键菜单但我不知道这些软件能否能做到符合每个人的心意所以本文还是用注册表的方式自定义右键菜单。特别声明本博客长期遭受 51CTO 盗文、剽窃反复投诉对方置若罔闻行为非常可耻你的优质文章也极有可能已被 51CTO 盗用详情参见《51CTO一个抄袭剽窃的流氓网站》https://laurence.blog.csdn.net/article/details/162671992本文多处嵌入此声明盗用此文即传播了此声明1. 展开全部菜单项首先解决一下 Windows 11 下头的右键菜单“更多选项”设置也就是默认不展示全部右键菜单内容而是需要点击“更多选项”才会完全展开菜单由于修改这个配置只涉及一个配置项就不单独写 reg 文件了直接使用命令行reg.exe add HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32 /f /ve参数/ve的作用是给添加的这个 key 设置一个空值。然后使用如下命令重启资源管理器进程并打 C 盘根目录点击右键查看菜单以确认是否生效taskkill /f /im explorer.exe start explorer.exe start C:/若想恢复“更多选项”设置直接使用命令行reg.exe delete HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32 /f /va参数/va的作用是删除这个 key 下的所有值。2. 右键菜单项在注册表中的位置Windows 的右键菜单项集中存放在注册表中的两个位置上它们分别是➢在目录空白处右键呼出的菜单项HKEY_CLASSES_ROOT\Directory\Background\shell➢选定一个目录右键呼出的菜单项HKEY_CLASSES_ROOT\Directory\shell大多情况下当我们要添加一个右键菜单项时需要同时在这两处添加配置项并且传入的参数会稍有不同以“在此处打开 Cmd” 这样的菜单项为例位于 Directory\Background\shell 下的配置项其要执行的命令是cmd.exe /s /k pushd \%V\而位于 Directory\shell 下的配置项其要执行的命令是cmd.exe /s /k pushd \%1\一个参数是%V一个参数是%1这两个参数都是注册表从上下文中获取后传递给命令行的不是 cmd 的参数%V表示当前所处的目录%1表示当前选定的目录。3. 两种性质不同的右键菜单项现在在 Windows 11 中有两种性质完全不同的右键菜单一种是传统的、可移除的菜单项另一种是不存在对应配置项或无法移除只能禁用的菜单项。这两种类型的右键菜单处理方式完全不同我们分开介绍一下。3.1 不存在对应配置项或无法移除只能禁用的菜单项据说这是 Windows 11 后引入的一种菜单注册机制并且多发生在一些新应用程序上。我本地刚好有一个这样的菜单就是 Zed安装 Zed 后会自动生成一个右键菜单项“Open with Zed”还有一个就是系统自带的“在此处打开终端”对于此类菜单项由于它不可编辑也不能移除所以如果想“动”它需要一些迂回的策略。我们先把需求说清楚如果你是不想看到这些菜单项单纯想“删除”它们我们会在下一节介绍具体方法如果你是想改动菜单项的文字内容或是调整它在菜单中的顺序那么也是要先“删除”它们然后重建传统菜单关于重建传统菜单会安排在下一节本节我们注重于“如何删除这些不存在对应配置项或无法在注册表中直接移除的菜单项”。首先我们需要判断当前要操作的菜单项是不是此类菜单项排查方法是➢ 在第 1 节给出的两个菜单项集中存放的位置上查看一下是否能找到与菜单项关联的子文件夹如果没有那就可以判定是这一类型了Zed 的右键菜单就是此类情形➢ 某些系统自带的右键菜单虽然在菜单项集中存放的位置上有对应的文件夹但是我们无权删除例如“在此处打开终端” 就是此类情形如果是以上两种情形中的一种那就无法硬性地删除这些菜单项了而是要使用“禁用”方式。具体操作是在注册表中打开HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PackagedCom\ClassIndex然后按Ctrl f呼出查找对话框输入软件的名称例如zed然后点击“查找下一个”进行查找找到后将其上层目录名一个由{...}包裹的很长的字符串粘贴出来这个字符串叫 GUID拿到这个 GUID 后打开文本编辑器编写如下注册表文件注意替换{...}中的字符串下面示例中 GUID 是 Zed 的Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked] {6A1F6B13-3B82-48A1-9E06-7BB0A6D0BFFD}然后将文件保存为.reg后缀的文件并双击文件导入到注册表中然后使用如下命令重启资源管理器进程并打 C 盘根目录点击右键查看菜单以确认是否生效taskkill /f /im explorer.exe start explorer.exe start C:/注意有时候使用软件名查找可能会查找到多个匹配项这时需要根据匹配项的信息判断是否是在找的软件如果不确定可以先按上述方法处理一遍看是否奏效然后再看要不要继续查找和尝试。这里再附送上禁用“在此处打开终端”菜单项的注册表文件Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked] {9F156763-7844-4DC4-B2B1-901F640F5155}3.2 传统菜单项这类菜单项就比较好操作了添加、删除、排序都可以掌控所以我们才建议如果你对上一类菜单项有任何定制化需求直接禁用它然后用这一节的方法重建新的菜单项即可。我们用以创建“在此处打开 Cmd” 菜单项作为一个示例介绍一下传统菜单项的创建方法。首先检查一下HKEY_CLASSES_ROOT\Directory\Background\shell和HKEY_CLASSES_ROOT\Directory\shell两个目录下有没有与 cmd 相关的文件夹如果有说明是系统自带的可以先尝试删除一下如果无法删除就按上一节介绍的方法禁用只是在新建的时候注意不要和现有的这个 cmd 目录重名即可。在本例中我们使用01_cmd来命名至于为什么这么起名后面会解释。具体操作方法以上一节类似打开文本编辑器编写如下注册表文件Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\01_cmd] 打开 Cmd Iconcmd.exe,0 [HKEY_CLASSES_ROOT\Directory\Background\shell\01_cmd\command] cmd.exe /s /k pushd \%V\ [HKEY_CLASSES_ROOT\Directory\shell\01_cmd] 打开 Cmd Iconcmd.exe,0 [HKEY_CLASSES_ROOT\Directory\shell\01_cmd\command] cmd.exe /s /k pushd \%1\然后将文件保存为.reg后缀的文件并双击文件导入到注册表中然后使用如下命令重启资源管理器进程并打 C 盘根目录点击右键查看菜单以确认是否生效taskkill /f /im explorer.exe start explorer.exe start C:/如果想移除这个菜单项就分别打开HKEY_CLASSES_ROOT\Directory\Background\shell和HKEY_CLASSES_ROOT\Directory\shell两个目录删除下面的01_cmd文件夹再次命令重启资源管理器即可。4. 控制右键菜单项排序右键菜单项一多很多朋友就想按使用频率或喜好排序了。初看系统现有的右键菜单排序你可能看不出任何规律更不知道如何排序但是观察一下每个菜单项的注册表内容我们就能找到规律➢每一个菜单项在右键菜单中的顺序是按每个 item 名称的字母顺序排列的也就是注册表中 shell 目录下子目录名的顺序。如果我们想控制右键菜单的排序就得在 item 名上做文章。我采用的方法是在 item 名称前加数字前缀例如如果我本地有 6 个右键菜单它们的顺序是我设计好的因为在 shell 目录下我给它们起的名字都加了01、02、03… 这样的前缀5. 右键菜单项大放送最后给大家提供一些我目前在用的一些自定义右键菜单项这些菜单项的主要思路是依靠当前的目录或选中的目录执行一些必要的常见操作除了基本的打开一些终端并自动进入到当前目录位置外还有一些在打开终端后自动执行一些常用命令或脚本。如果你要使用的话注意注册表中的一些文件路径替换。5.1 删除菜单项在此处打开终端Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked] {9F156763-7844-4DC4-B2B1-901F640F5155}5.2 添加菜单项打开 CmdWindows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\01_cmd] 打开 Cmd Iconcmd.exe,0 [HKEY_CLASSES_ROOT\Directory\Background\shell\01_cmd\command] cmd.exe /s /k pushd \%V\ [HKEY_CLASSES_ROOT\Directory\shell\01_cmd] 打开 Cmd Iconcmd.exe,0 [HKEY_CLASSES_ROOT\Directory\shell\01_cmd\command] cmd.exe /s /k pushd \%1\5.3 添加菜单项打开 Git Bash注意替换 git-bash.exe 文件路径!Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\02_git] 打开 Git Bash IconC:\\Lib\\Git\\git-bash.exe [HKEY_CLASSES_ROOT\Directory\Background\shell\02_git\command] \C:\\Lib\\Git\\git-bash.exe\ \--cd%v.\ [HKEY_CLASSES_ROOT\Directory\shell\02_git] 打开 Git Bash IconC:\\Lib\\Git\\git-bash.exe [HKEY_CLASSES_ROOT\Directory\shell\02_git\command] \C:\\Lib\\Git\\git-bash.exe\ \--cd%1\5.4 添加菜单项打开 PowerShellWindows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\03_powershell] 打开 PowerShell Iconpowershell.exe,0 [HKEY_CLASSES_ROOT\Directory\Background\shell\03_powershell\command] powershell.exe -noexit -WorkingDirectory \%V\ [HKEY_CLASSES_ROOT\Directory\shell\03_powershell] 打开 PowerShell Iconpowershell.exe.exe,0 [HKEY_CLASSES_ROOT\Directory\shell\03_powershell\command] powershell.exe -noexit -WorkingDirectory \%1\5.5 添加菜单项打开 MSVC注意替换 vcvars64.bat 文件路径!Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\04_msvc] 打开 MSVC Iconcmd.exe,0 [HKEY_CLASSES_ROOT\Directory\Background\shell\04_msvc\command] cmd.exe /K cd /d \%V\ \C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat\ [HKEY_CLASSES_ROOT\Directory\shell\04_msvc] 打开 MSVC Iconcmd.exe,0 [HKEY_CLASSES_ROOT\Directory\shell\04_msvc\command] cmd.exe /K cd /d \%V\ \C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat\5.6 添加菜单项复制 URI 路径Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\05_copyslashpath] 复制 URI 路径 Iconshell32.dll,-16758 [HKEY_CLASSES_ROOT\Directory\Background\shell\05_copyslashpath\command] powershell -WindowStyle Hidden -NoProfile -Command \$path(Get-Location).Path;$path$path.Replace(\\\\,/);Set-Clipboard -Value $path\ [HKEY_CLASSES_ROOT\Directory\shell\05_copyslashpath] 复制 URI 路径 Iconshell32.dll,-16758 [HKEY_CLASSES_ROOT\Directory\shell\05_copyslashpath\command] powershell -WindowStyle Hidden -NoProfile -Command \$path%1;$path$path.Replace(\\\\,/);Set-Clipboard -Value $path\5.7 添加菜单项统计目录大小注意替换 git-bash.exe 文件路径!Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\06_du] 统计目录大小 IconC:\\Lib\\Git\\git-bash.exe [HKEY_CLASSES_ROOT\Directory\Background\shell\06_du\command] \C:\\Lib\\Git\\git-bash.exe\ --cd\%V\ -c \du -sh * | sort -hr; read -n 1 -s -p Press any key to exit...\ [HKEY_CLASSES_ROOT\Directory\shell\06_du] 统计目录大小 IconC:\\Lib\\Git\\git-bash.exe [HKEY_CLASSES_ROOT\Directory\shell\06_du\command] \C:\\Lib\\Git\\git-bash.exe\ --cd\%1\ -c \du -sh * | sort -hr; read -n 1 -s -p Press any key to exit...\参考资料https://zhuanlan.zhihu.com/p/5423419455
返回列表