右键“新建”菜单彻底消失是因Windows系统级ShellNew注册表机制失效,需同时修复ContextMenuHandlers\New项、.txt\ShellNew和Directory\ShellNew三项,并清缓存、关组策略才能完全恢复。

右键“新建”菜单彻底消失,不是WebStorm的问题
右键没有“新建”选项,和 WebStorm 本身无关——这是 Windows 系统级 ShellNew 注册表机制失效导致的。WebStorm 的 New → HTML File 功能(在项目视图中右键)仍可用,但桌面/文件夹空白处的“新建”菜单是系统功能,被删或禁用后所有应用都受影响。
常见错误现象包括:桌面右键无“新建文本文档”“新建文件夹”,资源管理器空白处也不显示;但 WebStorm 内部右键 New 菜单正常。
- 别去重装 WebStorm 或重置其设置,无效
- 别只修
HKEY_CLASSES_ROOT\.txt\ShellNew就停手——必须同时修复Directory和Directory\Background\shellex\ContextMenuHandlers\New,否则文件夹空白处仍不显示 - 如果用过清理软件(如 CCleaner)、组策略禁用过“删除新建菜单中的某些命令”,需额外检查
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoNewMenu是否为1
快速恢复:用 reg add 命令一键补全核心注册表项
比手动点注册表更稳,且绕过权限问题(需管理员 PowerShell)。
打开“终端(管理员)”执行以下三行命令:
reg add "HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\New" /ve /d "{D969A300-E7FF-11d0-A93B-00A0C90F2719}" /f
reg add "HKEY_CLASSES_ROOT\.txt\ShellNew" /v "NullFile" /t REG_SZ /d "" /f
reg add "HKEY_CLASSES_ROOT\Directory\ShellNew" /v "NullFile" /t REG_SZ /d "" /f
执行完立刻生效,无需重启。若提示“拒绝访问”,说明没以管理员身份运行终端——右键“终端(管理员)”再试。
-
{D969A300-E7FF-11d0-A93B-00A0C90F2719}是 Windows 原生“新建”上下文处理器的 CLSID,不能写错 - 只加
.txt和Directory就够日常使用;其他类型(如.md、.html)需单独补ShellNew项,否则右键不会出现对应新建项 - 命令末尾的
/f表示强制覆盖,避免因键已存在却值为空导致失败
WebStorm 自己的右键菜单(Open With)要单独配
系统“新建”恢复后,你可能还想要在文件夹空白处右键直接启动 WebStorm——这不是系统功能,得手动注册。
路径必须用 HKEY_CLASSES_ROOT\directory\background\shell(注意小写 directory,不是 Directory):
- 新建项名任意,比如
webstorm - 设其默认值为显示文字,例如
Open with WebStorm - 新建子项
command,设其默认值为:"C:\Program Files\JetBrains\WebStorm 2024.2\bin\webstorm64.exe" "%V"(路径按你实际安装位置调整,%V表示当前目录路径) - 想加图标?在
webstorm项下新建字符串值Icon,值填C:\Program Files\JetBrains\WebStorm 2024.2\bin\webstorm64.exe
改完不用重启,但资源管理器可能缓存旧菜单。执行 taskkill /f /im explorer.exe & start explorer.exe 刷新即可。
修复后仍不显示?先排除缓存和策略干扰
即使注册表写对了,图标和菜单也可能延迟加载或被策略压制。
- 运行
ie4uinit.exe -ClearIconCache清除 Shell 图标缓存(常被忽略) - 检查组策略:运行
gpedit.msc→ 计算机配置 → 管理模板 → 桌面 → “删除‘新建’菜单中的项目”,确认是“未配置”或“已禁用” - 若用过企业版镜像或域控环境,
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Explorer\NoNewMenu也可能被设为1,需一并清零 - 最后才考虑
sfc /scannow——多数情况不是系统文件损坏,而是注册表项缺失或策略锁死
真正麻烦的从来不是注册表路径写错,而是修完 A 项忘了 B 项,或者缓存没清、策略没关,结果反复折腾半天。


















