如果你右键单击或按下Alt+Enter快捷方式,Windows 通常会显示上下文菜单或特性即使快捷方式已损坏并指向不再存在的文件或目录。
我已经看到这个对于损坏的.exe
文件快捷方式需要一些时间,Windows 花了几秒钟(在这种情况下是 15 秒),大概是尝试解析快捷方式,然后才最终显示上下文菜单或特性对话框。即使删除文件也要等待 15 秒才会显示删除提示。复制或移动它们似乎不会触发延迟。
我以为这可能是与网络相关的设置,但它似乎适用于每个(损坏的)快捷方式,无论它们指向何处。我查看了 TweakUI,什么也没发现。我查看了注册表中的 15,000(和 0x3A98),没有发现任何适用的设置,以及 15(和 0x0f),后者有很多匹配,但没有一个是导致这种情况的。
是否有一个设置可以确定解析快捷方式的超时时间?
答案1
事实证明,在这种情况下,它是一个 shell 扩展。
首先,我观察到,当右键单击损坏的快捷方式时,Explorer 会每秒尝试打开一次它指向的可执行文件,持续 15 秒,然后放弃。
然后,我观察了右键单击快捷方式时访问的所有注册表项,并逐一检查了、、HKCR\.lnk
和,检查每个项是否有任何异常。HKCR\lnkfile
HKCR\.exe
HKCR\exefile
- 我打开了注册表编辑器并禁用了所有
exefile
扩展(通过在每个 CLSID 的开头附加“#”) - 我发现右键单击非常快捷。太棒了!
- 然后,我通过删除“#”重新启用每个扩展,每次都右键单击损坏的快捷方式
瞧!有问题的扩展{F0407C3D-349C-42B9-B83E-821E31623DF9}
对应于 CmdLineExt,这听起来很无辜(已经有一个扩展可以在任何文件夹中打开命令行提示符),但事实并非如此。这个阴险且明显有缺陷的扩展实际上是Explorer 的 SecuROM 上下文菜单经过索尼 DADC 奥地利公司,而且似乎此扩展是只会带来麻烦。
我不确定它是如何或何时安装的(可能是某个软件的一部分),但索尼以其‘rootkit’。
无论如何,据我所知,Windows 不会延迟解决快捷方式;它会立即检测到损坏的快捷方式并解决错误(使用默认值)。