记录一处 Windows 11 文件资源管理器经典右键菜单的时序问题

474 字
2 分钟
记录一处 Windows 11 文件资源管理器经典右键菜单的时序问题

环境#

机器 A#

  • 操作系统:Windows 11 IoT 企业版 LTSC
  • 版本号:24H2
  • 内部版本号:26100.9711
  • 通过新建:HKEY_CURRENT_USER\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32 并打开默认值后直接保存,使其变成空字符串。进而禁用 Windows 11 的新右键菜单,改用经典右键菜单。

机器 B#

  • 操作系统:Windows 11 专业版
  • 版本号:25H2
  • 内部版本号:26200.9711

问题#

在“此电脑”里左键单击空白处后,在 500ms 内右键任一卷,经典菜单会秒关。新菜单不受影响(按住 Shift 右键同样触发)。


分析#

最开始的个人猜测:

左键单击空白处必定触发一次“刷新”,发生在单击后的 500ms 以内。

此时快速右键单击卷,新打开的右键菜单会因为”刷新”而被自动关闭。

经过几个小时排查后得到的结论:

Claude:

原因:在“此电脑”里左键点空白处导致选中状态变化后,Win11 命令栏会在后台重新计算按钮状态。「映射网络驱动器」(HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Windows.MapNetworkDrive)的 CommandStateHandler 走的是 CCommandStoreShimOverCommandFolder,它计算时会临时创建再销毁一个 CDefView,销毁时调用了 EndMenu。这时如果已经右键弹出了经典菜单,菜单就被关掉。XAML 新菜单不受影响。

后果:系统不再计算这个按钮的显示状态,一律显示。实测”此电脑”命令栏里网络相关的四个按钮(连接到媒体服务器、添加一个网络位置、映射网络驱动器、断开网络驱动器的连接)都正常显示、功能正常。系统更新可能会把这个值恢复,这一点没验证过,恢复了就再改一次。


解决方案#

通过 AdvancedRun 以 TrustedInstaller 运行 C:\Windows\regedit.exe 后修改:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Windows.MapNetworkDrive 下的

CommandStateHandler 为 CommandStateHandler_bak

无须重启文件资源管理器即可生效。

记录一处 Windows 11 文件资源管理器经典右键菜单的时序问题
https://nekoside.com/posts/explorer-bug/
作者
nekoside
发布于
2026-10-24
许可协议
CC BY-NC-SA 4.0
文章目录