<p>删注册表前必须先关掉所有Code进程,因为VSCode运行时会锁定HKEY_CURRENT_USER\Software\Microsoft\VS Code等注册表项,直接删除易失败或报权限错误;需结束Code.exe、Code Helper.exe(含GPU/Renderer)、Code - Insiders.exe等进程。</p>

为什么删注册表前必须先关掉所有 Code 进程
VSCode 的注册表项(尤其是 HKEY_CURRENT_USER\Software\Microsoft\VS Code)在进程运行时会被锁住,直接删除可能失败、删不全,甚至触发 Windows 权限错误。常见现象是右键删完没反应,或 regedit 提示“无法删除:权限被拒绝”。
必须确认以下进程全部结束:Code.exe、Code Helper.exe(含 GPU/Renderer 后缀)、Code - Insiders.exe(如果装过 Insider 版)。打开任务管理器 → 详细信息页 → 按名称排序,逐个结束。
只删这两个注册表路径,别碰 Uninstall 或 Classes
VSCode 不走标准 MSI 卸载流程,它的配置只存于两处,其他位置删了反而容易出问题:
• HKEY_CURRENT_USER\Software\Microsoft\VS Code —— 用户级设置、扩展启用状态、窗口布局都从这里读,重装后“复生”的主因
• HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VS Code —— 仅 System Installer 安装时存在,普通用户几乎不会看到;若存在且你确定没用组策略管控,可删
⚠️ 别去动 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\{GUID} 下的 VSCode 项——那是安装器元数据,删了会导致控制面板里“已安装应用”显示异常;也别碰 HKEY_CLASSES_ROOT\vscode 或 AppUserModelId,日常重装完全不需要。
右键菜单出现两个“Open with Code”?精准定位并删冗余 shell 项
重复右键项不是 UI bug,而是注册表里多个 OpenWithCode 或 VSCode 子项同时生效。Windows 资源管理器不校验重复,只按顺序渲染所有匹配的 shell\*。
打开 regedit,按 Ctrl+F 搜索 OpenWithCode,重点检查这三处:
• HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCode
• HKEY_CLASSES_ROOT\Directory\shell\OpenWithCode
• HKEY_CLASSES_ROOT\*\shell\OpenWithCode
逐个点开,看 command 子项下的默认值是否指向一个真实存在的 code.cmd 路径(不是 Code.exe)。路径已失效、或指向旧安装目录的项,就是该删的冗余项。每次只删一个,删完在任务管理器重启 explorer.exe 验证效果。
删完注册表,%APPDATA%\Code 不清等于白干
注册表和 %APPDATA%\Code 是强绑定的:只要这个目录还在,哪怕注册表清空了,VSCode 启动时会立刻从 User\settings.json 重建注册表项,旧设置原样“复活”。
必须同步清理:
• %APPDATA%\Code —— 用户设置、缓存、全局存储、工作区状态
• %USERPROFILE%\.vscode\extensions —— 扩展包本身,禁用不等于删除,残留扩展仍可能抢注命令
• %LOCALAPPDATA%\Programs\Microsoft VS Code —— User 安装版主程序目录(路径存在才删)
注意:code.cmd 必须出现在 command 值中,填 Code.exe 会导致右键点击无响应——这是 Electron 应用启动机制决定的,不是路径写错了。


















