软件吧
登录注册账号
/posts/shell-sendto-mailrecipient-mapimail
电脑必备

把右键菜单里「发送到」那一堆快捷方式清完后,顺手发现个更隐蔽的坑

极客阿凯 14 0 10

周末折腾自己那台主力机,起因是右键「发送到」里塞了一堆早就没用的目标——蓝牙设备、旧U盘盘符、某个卸载残留的网盘入口。清起来很简单,shell:sendto 打开文件夹,把没用的快捷方式删掉就行。

但删完之后我多看了一眼,发现「发送到」文件夹里有个叫 MailRecipient.MAPIMail 的东西,属性里指向一个根本不存在的 DLL。顺手用 Process Monitor 抓了一下右键操作的调用,果然每次右键都要先碰一次这个无效路径,虽然耗时只有几毫秒,但日志里能看到一条 NAME NOT FOUND。

这就引出我想说的正题了:快捷方式失效不只是碍眼,它会带来真实的 IO 探测开销。清完之后我做了个简单对比,同一台机器、同一个资源管理器窗口,用 Get-ItemProperty 循环读 200 次右键菜单枚举的耗时(脚本粗糙,但趋势能看):

状态平均耗时无效路径探测次数
清理前约 42ms每次右键 3~5 次
清理后约 18ms0

清理前那 42ms 里,大头其实是缩略图缓存和第三方 shell 扩展,但我把扩展逐个禁用后发现,「发送到」里那几条死链也贡献了稳定的一截。结论:不致命,但属于零成本可优化的项。

顺手还清了两处同类隐患:

  1. %APPDATA%\Microsoft\Windows\SendTo 下的残留快捷方式。
  2. 任务栏固定项里指向已卸载程序的 .lnk,右键会卡一下才弹菜单。

有个细节提醒一下:删「发送到」里的项目前,先确认不是系统自带的(比如「桌面」「文档」这些),删了虽然能恢复,但没必要给自己找事。我一般先整个文件夹打个压缩包备份,再动手。

至于自动优化工具,这类边角清理它一般不会碰,还是得手动来。我自己的习惯是每季度过一遍这几个 shell 相关目录,配合 autoruns 看一眼 shell 扩展,基本能保持右键菜单不拖泥带水。

最后问一句:你们右键菜单卡顿的时候,一般怎么定位是哪个 shell 扩展在拖后腿?有没有比 Process Monitor 更顺手的法子?

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

社区回应

0 Replies

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

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