跳转至

ContextMenuManager11

一个面向 Windows 11 的本地右键菜单管理工具,把散落在注册表中的 Explorer 菜单项整理成可读、可查看、可开关的桌面界面。

GitHub:BeyondXinXin/ContextMenuManager11

ContextMenuManager11 主界面


1 项目定位

Windows 右键菜单用了很多年之后,很容易逐渐堆积大量第三方项目。

真正想整理时会发现,它们并不集中存在一个地方:

  • 有些来自 Shell
  • 有些来自 ShellEx
  • 有些属于文件
  • 有些属于文件夹
  • 有些只出现在目录空白处
  • 还有“新建”“发送到”“打开方式”等不同机制

直接使用注册表当然可以管理,但大量 CLSID、资源字符串和不同注册位置并不适合日常操作。

ContextMenuManager11 做的事情,就是把这些 Windows 内部信息重新整理成人能直接看懂的界面。


2 核心功能

程序可以分别查看和管理:

  • 文件右键菜单
  • 文件夹右键菜单
  • 目录空白处菜单
  • 桌面背景菜单
  • 磁盘菜单
  • 此电脑
  • 回收站
  • “新建”
  • “发送到”
  • “打开方式”

对于每个菜单项,会尽量解析并展示:

  • 实际显示名称
  • 图标
  • 来源
  • 当前启用状态
  • 命令
  • 程序路径
  • CLSID
  • 注册表位置

这样不需要直接面对一堆内部标识,就能知道某个菜单项究竟是谁添加的、现在是否生效,以及对应配置在哪里。

另外还支持:

  • 只显示当前启用项目
  • 启用 / 禁用常见 Shell、ShellEx 项目
  • Windows 11 经典完整右键菜单切换
  • 一键重启 Explorer
  • 查看部分系统动态菜单项

3 为什么没有直接“删除”

这个工具更倾向于管理状态,而不是简单删除注册表项。

右键菜单的来源比较复杂,很多第三方软件在升级或重新安装后还会再次写入。相比直接删除,优先做启用 / 禁用更容易恢复,也更适合长期管理。

对于无法安全单独控制的 Explorer 运行时菜单,程序会标记为系统项目,只提供查看。

这也是项目里比较重要的一条原则:

能明确恢复的操作才适合做成一个开关。


4 技术实现

项目使用:

  • C#
  • .NET 10
  • Windows Forms
  • Windows Registry / Shell 相关能力

程序目标平台为 net10.0-windows,发布为 Windows x64 自包含单文件应用。

工程结构主要分为:

ContextMenuManager11
├─ Models
├─ Services
├─ UI
├─ MainForm.cs
└─ Program.cs

界面层只负责展示和交互,菜单枚举、注册表解析、图标解析和配置修改集中在 Services 中,避免把大量 Windows Shell 细节直接堆进窗体代码。


5 右键菜单为什么比想象中复杂

这个项目真正有意思的地方,并不是“改几个注册表值”,而是如何把 Windows Explorer 的不同菜单来源统一成同一种可读模型。

同一个右键菜单界面背后可能来自完全不同的机制。

有些项目有明确名称,有些只保存资源编号;有些可以直接找到 EXE,有些通过 CLSID 间接定位;还有一些项目根本不是静态注册表菜单,而是 Explorer 运行时生成。

因此程序需要做的并不只是:

读取注册表 → 显示列表

而更接近:

枚举不同菜单来源
解析名称 / 图标 / CLSID / 命令
统一为菜单模型
识别是否允许安全修改
按照 Explorer 语义展示

这部分也是整个项目最主要的工程工作。


6 Windows 11 适配

Windows 11 引入了新的简化右键菜单,但很多开发工具和传统 Shell 扩展仍然位于“显示更多选项”中。

ContextMenuManager11 同时提供经典完整右键菜单切换,方便需要频繁使用传统菜单的开发环境。

修改系统级菜单配置需要管理员权限,因此程序在 Manifest 中声明了相应权限。


7 发布方式

项目配置为:

  • Windows x64
  • Self-contained
  • Single-file
  • 不依赖目标电脑预装 .NET Runtime

因此下载 Release 后可以直接运行。

源码与 Release:

https://github.com/BeyondXinXin/ContextMenuManager11


8 项目总结

ContextMenuManager11 属于我比较喜欢的一类小工具:问题不大,但系统本身没有提供足够顺手的入口。

它不试图替代 Explorer,也不安装额外 Shell Extension,只把 Windows 已有的配置重新整理成一个更容易理解和控制的界面。

对于这种工具,我更在意的是简单、透明和可恢复,而不是堆很多功能。