English Version
> [!WARNING]
> 本项目的相当一部分代码由 AI 辅助生成,并经过持续的人工作业、联调和重构,但它仍然可能存在遗漏、边界情况处理不足或行为与预期不完全一致的问题。
> 如果你在使用过程中发现 Bug、兼容性问题、异常行为或文档缺失,欢迎积极提交 Issue。最好附上复现步骤、日志、截图和系统版本信息,这会非常有帮助。
🚀 项目简介
Context Menu Manager Plus 是一个面向 Windows 的右键菜单管理工具。
它不是一个单纯的“右键菜单开关器”,而是围绕以下目标设计:
- 先拦截,再交给用户审核
- 管理传统右键菜单项
- 管理 Windows 11 新右键菜单项
- 检测第三方软件新增的右键菜单项
- 保护右键菜单相关注册表,减少第三方软件随意添加菜单项
- 提供全局搜索、页面筛选、菜单项深入分析等辅助能力
- 通过后台服务、前端界面、托盘宿主协作,尽量保持长期可用
简单来说,它的目标是:
> 帮你把 Windows 右键菜单从“软件想塞什么就塞什么”,变成“用户决定什么能留下”。
项目基于:
.NET 10
WPF
WPF-UI
Named Pipe IPC
Windows Service
- 原生 Win32 托盘宿主
- 独立 ProbeHost 辅助分析进程
📦 安装
如需快速开始,请选择以下任一安装方式:
从 GitHub 下载 .exe 文件
前往 GitHub Releases,向下滚动并展开 Assets,然后选择与你的系统架构和安装范围匹配的安装文件。对大多数设备来说,通常选择 x64-self-contained。
WinGet
你可以通过 WinGet 安装 Context Menu Manager Plus。在命令行或 PowerShell 中运行以下命令:
winget install PLFJY.ContextMenuMgrPlus
winget install PLFJY.ContextMenuMgrPlus.Beta
Scoop
你可以通过 Scoop 安装 Context Menu Manager Plus。在命令行或 PowerShell 中运行以下命令:
需要先添加本项目的 Scoop bucket:
scoop bucket add PLFJY https://github.com/PLFJY/scoop-bucket.git
scoop install PLFJY/ContextMenuMgrPlus
scoop install PLFJY/ContextMenuMgrPlus-Beta
📚 目录
✨ 核心特色
-
先拦截,再审核
这是本项目最重要的设计目标。新的右键菜单项被检测到后,项目不会默认放任它直接生效,而是尽量先禁用或拦截该项,再放入“待审核”页面交给用户处理。
用户可以选择:
允许:放行并启用该菜单项
保持禁用:保留该项,但继续禁用
移除:从注册表或审核队列中移除该项
这也是它和普通右键菜单管理器最大的区别。
-
传统菜单与 Windows 11 新菜单并行管理:分别处理 classic shell / shellex 菜单和 Windows 11 Packaged COM / AppX 菜单。
-
后端服务 + 前端 + 托盘宿主协作:前端负责交互,后端服务负责扫描和注册表操作,TrayHost 负责通知和托盘入口。
-
全局搜索与页面筛选:支持按标题、命令、注册表路径、文件路径、CLSID、Win11 包信息等字段查找并跳转。
-
Shell Extension 深入分析:通过独立 ProbeHost 隔离探测第三方 Shell Extension,失败通常不影响普通菜单管理。
-
注册表保护增强:可限制第三方随意写入右键菜单相关注册表项;安装驱动或会写菜单的软件前建议临时关闭。
-
特殊菜单支持:覆盖新建菜单、发送到、Win + X 等与普通 shell / shellex 不同的入口。
🧩 功能
- 传统右键菜单管理:浏览文件、文件夹、目录背景、桌面背景、磁盘、库、此电脑、回收站等场景;支持启用、禁用、删除、撤销删除、编辑部分显示名称、查看命令和打开相关位置。
- Windows 11 新菜单管理:枚举 Win11 新菜单项,查看包名、发布者、上下文类型和 COM Server 路径,并支持用户级启用 / 禁用。
- 审核队列与通知:新增项进入待审核页,同一逻辑项会聚合展示;TrayHost 可弹出通知并拉起前端处理。
- 外部变化检测:尽量发现第三方新增项、已知项被恢复 / 删除、注册表状态和本地状态不一致等情况。
- 文件类型与规则页:覆盖快捷方式、UWP 快捷方式、可执行文件、自定义扩展名、感知类型、目录类型、增强菜单、详细编辑和自定义注册表路径等规则。
- 设置页:提供语言、主题、日志等级、随 Windows 启动、服务安装 / 修复 / 卸载、重启资源管理器、日志 / 状态 / 配置目录入口和注册表保护开关。
📖 文档
架构设计、开发指南、构建发布和排错说明请查看 开发文档。
⚠️ 注意事项
- 本项目涉及注册表修改,请谨慎使用
- 删除、禁用、ACL 保护等操作可能受系统权限、安全软件或 Windows 保护机制影响
- 某些系统保护的注册表根键无法被普通方式修改 ACL,这是 Windows 本身限制
- 某些安全软件可能会拦截删除、恢复、注册表写入或 Shell Extension 探测
- 图标、显示名、命令文本、CLSID 元数据解析均为 best-effort,不保证覆盖所有第三方菜单项
- Shell Extension 深入分析是 best-effort,失败通常是正常现象
- 用户级右键菜单项、系统级右键菜单项、PackagedCom、ShellEx / CLSID 项的行为并不完全一致
- 开启注册表保护后,部分软件安装器或驱动安装器可能无法写入右键菜单相关项
- 遇到边界情况时,日志通常比界面提示更有价值
💬 反馈建议
如果你要提 Issue,建议至少附上:
- Windows 版本
- 出问题的菜单项名称 / 注册表路径
- 前端日志
- backend 日志
- trayhost 日志(如果问题涉及托盘)
- 复现步骤
- 截图或录屏
🤝 贡献指南
本项目中内置有开发文档(位于 docs/ 目录下),并附带有 AGENTS.md、CLAUDE.md,可以直接利用主流的 Agent 工具为本项目做出贡献
📄 License
本项目遵循 GPL V3.0 协议开源,See LICENSE.
🙏 参考与致谢
本项目代码大量参考自以下项目:
⭐ Stargazers over time
