软件吧
登录注册账号
/posts/procmon-win11
电脑必备

拿Procmon盯了半小时,才搞清Win11右键菜单那个「新建」卡顿的元凶

极客阿凯 84 0 13

先别急着甩锅给系统。上个月重装完Win11,右键菜单里「新建」子菜单每次展开都要卡个半秒左右,虽然不影响用,但对我这种一天要建几十个txt的人来说是真膈应。

网上搜了一圈,清一色在说「改注册表关掉新菜单回归Win10样式」。我照做了,卡顿确实好了点,但那是把整个右键菜单都替换了,等于为了治个感冒把客厅拆了——而且我还挺喜欢新菜单的图标布局,不想退回去。

所以这次我换了个思路:直接上Process Monitor,过滤条件设成Process Name is explorer.exe + Path contains .txt,然后清空日志,手动去点一次「新建 → 文本文档」,看它到底在等什么。

结果挺意外的,不是Windows Terminal那边的事,是HKCU\Software\Classes\.txt\ShellNew下面挂着一个NullFile值没错,但同一路径下还有个老早装某个编辑器时留下的Data键,指向一个不存在的C:\Program Files\OldEditor\template.txt。explorer每次展开菜单都要去stat这个路径,超时重试一轮,那半秒就耗在这。

把那个Data键删掉之后,再拿Process Monitor复跑一遍,CreateFile那张表里已经没有对旧路径的查询了,右键新建秒开。

顺手也把.md、.py、.json这几个常用的ShellNew项都扫了一遍,发现.md下面挂着两个Command键,一个指向已卸载的Typora,另一个指向现在的VS Code。这种残留多了,右键菜单加载时是挨个查的,积少成多。

我做的事其实很简单:

  1. 用reg query HKCU\Software\Classes /s /f ShellNew把当前用户下所有ShellNew项列出来(注意只看HKCU,HKLM下面的动之前先备份);
  2. 逐个核对里面的Data、Command、FileName值,路径不存在的就记下来;
  3. 改之前先reg export导出那一小枝,出问题直接双击回滚;
  4. 删完清一次explorer,用Process Monitor再跑一遍确认没有指向死路径的查询。

有个细节得说清楚:别用「一键清理右键菜单」那种工具图省事,我拿虚拟机试过一个,它会连你正常在用的ShellNew项一起端掉,结果新建菜单里连「文本文档」都没了,还得手动加回来。手动改虽然慢,但每一步改了什么心里有数,出问题也查得到。

另外这个卡顿在不同机器上表现不一样。我在另一台老笔记本上复现,.txt删干净了还是有点钝,最后定位到是某个云盘客户端往ShellNew里塞了个同步钩子,那个得去它自己的设置里关,不是注册表能解决的。所以这事没有通用答案,得一台一台拿Process Monitor看。

抛个问题:你们右键菜单里「新建」卡顿,一般先查注册表ShellNew项,还是先怀疑第三方shell扩展?我这边遇到过两种都有,想看看大家的排查顺序。

登录后可以为帖子点赞,但本帖内容对所有人开放阅读。

社区回应

0 Replies

还没有回应,抢一个沙发。

登录后可以回应和点赞,但本帖内容对所有人开放阅读。