分析解决删除目标不存在的快捷方式时响应缓慢的问题

简介:

 问题现象:对于那些链接目标已经不存在的程序快捷方式,不管右键单击还是按键盘上的删除键,资源管理器都会停止响应相当长一段时间,然后才弹出右键菜单或确认删除的对话框。

这个问题已经出现好几个月了,实在是让我忍耐了几个月,每次遇到都要抓狂。起先以为是Vista的BUG,但在别人电脑上也从没遇到,应该是安装的某个程序有兼容性问题。

使 用过Process Monitor来进行注册表和文件访问的监视,看哪个模块或注册表键值出了问题。发现出现该问题时,Explorer.exe每隔一秒钟试图访问一次不存 在的目标程序路径,发生“名称未找到”的失败访问,一共持续了十多秒(如图),没有其他什么线索:

1

而 且由于Explorer.exe随着用户的一举一动在频繁的访问各处注册表和文件,要在没有线索的情况下找出访问哪个注册表键值或文件时响应缓慢很难,之 前几次尝试找出真凶,都无功而返。很多人遇到这种问题可能想要重装系统,但我认为这实在是下下策,不是在解决问题,而是在逃避问题。

今 天,删除快速启动栏中残留QQ音乐的快捷方式时,又遇到老问题,我决定再试一次。还是打开Process Monitor进行监视,发现在上述现象发生前夕,Explorer.exe访问了MacDrive、WinRAR、Restorator等的外壳扩展模 块dll,经过逐个筛查,他们的嫌疑都被排除,其余就没有什么可疑项目了。问题模块究竟深藏何处?

偶然双击到访问QQMusic.exe发生“名称未找到”错误时的记录,打开了事件属性对话框,在那里看到“堆栈”选项卡。线索会不会在这里?

Process Monitor中的“堆栈”选项卡记录了事件发生时,执行任务的线程的堆栈状态,包括堆栈中每个帧的模块路径、内存地址,其中内核模式(Kernel- mode)的帧在前面标注“K”,用户模式(User-mode)的帧标注“U”。双击某个条目,可查看该模块的文件路径、文件描述、版本号和公司信息:

7

具体到本次访问QQMusic.exe时发生的“名称未找到”事件,堆栈列表中大都是Windows自身常见的系统文件,只有一个CmdLineExt.dll没见过。

2

查看其属性发现并非微软出品,而是Sony DADC Austria AG.,十分可疑。找到该文件所在位置,查看文件属性,发现带有Sony的数字签名,应该不是病毒,上网搜索才知道,原来它属于索尼securom ROM的版权保护组件,根据介绍来看应该是之前安装某个游戏的时候进驻我的系统的。网上还说“它已被证实对很多系统造成严重的性能问题”,看来罪魁祸首十有八九就是它。

由于这是一个dll文件,可能已通过regsvr32注册的方式注册到系统中,直接删除文件的话,可能导致系统中留有残留信息。因此首先使用regsvr32 /u 命令尝试反注册它。果然提示卸载成功:

6

然后就要删除它,可是提示文件正在被占用。

5

虽然已被卸载,但Explorer要到下一次运行时才不再调用它,因此打开任务管理器,结束Explorer进程之后再次运行,终于把CmdLineExt.dll删除掉了。现在删除已经无效的QQMusic快捷方式,迅速弹出确认删除对话框,问题果然解决了!

遇到此问题的操作系统为Windows Vista,不清楚在其他系统下是否也会遇到类似情况,如果不存在的话,那可能是SecuROM与Vista的兼容性问题。


本文转自wbpluto 51CTO博客,原文链接:http://blog.51cto.com/wbpluto/476738,如需转载请自行联系原作者

相关文章
解决删除文件时出现“该项目不在XX中,请确认该项目的位置然后重试”的提示
近期在删除文件夹的时候,出现了这个“该项目不在XX中,请确认该项目的位置然后重试”的提示,实际上这个文件(夹)就在那里,死活都删不掉,win10系统重启之后删除都不行的
9277 0
|
3月前
|
网络协议
浅谈网页从请求到显示的过程
浅谈网页从请求到显示的过程
|
存储 JavaScript 小程序
刷新网页后先前浏览位置不变的解决方案
我重新加载网页,刷新之后,滚动条依然定位在我刚刚浏览的位置,这个小功能感觉还不错,挺方便的。 具体是怎么实现的呢,去网上大概查了一下。 这个是使用滚动条属性scrollTop来实现的。
131 0
|
安全 Java Windows
不可或缺的BCUninstaller:全面显示软件信息、批量垃圾删除、强制卸载程序……
不可或缺的BCUninstaller:全面显示软件信息、批量垃圾删除、强制卸载程序……
169 0
|
Web App开发 安全 Windows
win10_x64更新错误解决: 安装一些更新时出现问题,但我们稍后会重试。如果持续出现这些问题,并且你想要搜索Web或联系支持人员以获取相关信息,以下信息可能会对你有帮助:
可能的原因:  1、windows 服务没打开 win+r,打开【运行】对话框 输入 【service.msc】 找到 【Windows Firewall】和【Internet connection sharing】 都启动,并设为【自动】,重新启动 【设置】--【更新和安全】 2、设置的代理,但是代理没打开 将设置的代理服务器打开。
7052 0
Windiws10系统不显示可用网络的处理方法!
Windiws10系统不显示可用网络的处理方法!
474 0
Windiws10系统不显示可用网络的处理方法!
SAP 操作,弹出报错 - 已根据规则拒绝服务器触发的操作,是否要查看上个通讯步骤中触发的操作列表 -
SAP 操作,弹出报错 - 已根据规则拒绝服务器触发的操作,是否要查看上个通讯步骤中触发的操作列表 -
SAP 操作,弹出报错 - 已根据规则拒绝服务器触发的操作,是否要查看上个通讯步骤中触发的操作列表 -