彻底清理 vscode右键菜单只需删除四个注册表shell项:hkey_classes_root\directory\background\shell\openwithcode、hkey_classes_root\directory\shell\openwithcode、hkey_classes_root\shell\openwithcode、hkey_classes_root\shell\vscode,并同步删除%appdata%\code目录且重启explorer.exe。

彻底清理 VSCode 右键菜单,核心就一条:只删注册表里明确属于它的 shell 项,其他地方动不得。删错位置(比如误碰 MuiCache 或 Uninstall)会导致右键整体异常或系统级菜单错乱。
定位并删除 VSCode 相关的 shell 注册表项
VSCode 的右键菜单项只可能出现在四个固定路径下,对应不同触发场景。逐个检查、只删冗余项,不批量清空:
-
HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCode(文件夹空白处右键) -
HKEY_CLASSES_ROOT\Directory\shell\OpenWithCode(点击文件夹图标右键) -
HKEY_CLASSES_ROOT\*\shell\OpenWithCode(任意文件上右键) -
HKEY_CLASSES_ROOT\*\shell\VSCode(同上,旧版或手动添加的别名)
打开 regedit,用 Ctrl+F 搜索 OpenWithCode 或 VSCode,只点开这四条路径下的子项。确认某一项的 command 默认值里路径已失效(如指向已删除的 Code.exe),右键该父项 → “删除”。每次只删一个,删完立刻重启 explorer.exe(任务管理器 → 重启)验证效果。
为什么不能靠“禁用”或“LegacyDisable”?
对 VSCode 这类 Shell 扩展项,加 LegacyDisable 字符串值基本无效——它只对传统静态命令有效,而 VSCode 是通过 COM 组件动态注入菜单的。Windows 资源管理器看到注册表里存在这个 shell 子项,就会尝试加载对应 DLL,找不到就静默失败或卡顿,不会因为加了 LegacyDisable 就跳过。所以必须删项本身,不是“隐藏”。
删完必须同步清理 %APPDATA%\Code 和重启 explorer
只删注册表是白干。VSCode 启动时会读取 %APPDATA%\Code 下的配置,如果这个目录还在,它会在下次启动时重新写回注册表,把刚删掉的项又“复活”:
- 关闭所有
Code.exe和Code Helper.exe进程(任务管理器里确认) - 手动删除整个
%APPDATA%\Code目录(不是只删里面的settings.json) - 删完立即重启
explorer.exe,否则右键菜单缓存不刷新,残留项仍可见
特别注意:%APPDATA%\Code 和注册表是强绑定的,两者必须同步清理,缺一不可。
别碰 MuiCache、Uninstall 和 Classes\Local Settings
网上很多教程让你删 HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache,这是高危操作。这个键是 Windows 全局右键菜单文本缓存,删了会导致所有软件右键文字乱码或消失,不止 VSCode。同样,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall 下的 VSCode GUID 项是安装器元数据,删了会影响“设置→应用”列表显示,和右键无关。这些位置一律跳过。











