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

简介:

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

这个问题已经出现好几个月了,实在是让我忍耐了几个月,每次遇到都要抓狂。起先以为是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,如需转载请自行联系原作者

相关文章
|
异构计算
单卡可推理CodeFuse-CodeLlama-34B 4bits量化版本魔搭开源!
继2023-09-11 CodeFuse-CodeLlama-34B发布,HumanEval pass@1指标达到74.4% (贪婪解码), 为当前开源SOTA。最近,CodeFuse-CodeLlama-34B 4bits量化版本发布,CodeFuse-CodeLlama-34B-4bits是CodeFuse-CodeLlama-34B模型的4bits量化版本,后者是通过QLoRA对基座模型CodeLlama-34b-Python进行多代码任务微调而得到的代码大模型,模型输入长度为4K。
|
Linux C++ Windows
code规范 --- 驼峰命名法
code规范 --- 驼峰命名法
1219 0
|
机器学习/深度学习 人工智能 网络架构
Transformer原理解析——一种Open AI和DeepMind都在用的神经网络架构
Transformer模型是一种日益流行的神经网络结构。它最近被OpenAI用于他们的语言模型中。与此同时,近期也被DeepMind用于它们的程序“星际争霸”中击败了一名顶级职业星际玩家。 Transformer模型的开发是为了解决序列转换及神经机器翻译问题。
9254 0
|
10月前
|
关系型数据库 网络安全 数据库
如何快速搭建一个属于自己的网站?
本文将详细介绍如何使用低代码开发平台,以可视化的方式添加多种风格的门户组件,快速高效地构建移动端和PC端门户网站。
|
12月前
|
供应链 搜索推荐 算法
淘宝电商运营的小秘籍,看完血赚。
在淘宝电商竞争激烈的环境中,掌握实用运营技巧是成功的关键。本文深入剖析了淘宝电商运营的五大核心策略:精准市场定位与选品、引人入胜的店铺装修、优质客户服务、灵活营销推广及数据驱动决策。通过这些技巧,你可以在淘宝平台上打造独具魅力的店铺,吸引更多流量和客户,实现销售业绩稳步增长,最终脱颖而出,成为知名品牌。
1135 10
|
12月前
|
JSON Java API
探索安卓开发:打造你的首个天气应用
在这篇技术指南中,我们将一起潜入安卓开发的海洋,学习如何从零开始构建一个简单的天气应用。通过这个实践项目,你将掌握安卓开发的核心概念、界面设计、网络编程以及数据解析等技能。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供一个清晰的路线图和实用的代码示例,帮助你在安卓开发的道路上迈出坚实的一步。让我们一起开始这段旅程,打造属于你自己的第一个安卓应用吧!
307 14
|
存储 人工智能 算法
NFT元宇宙链游系统开发技术规则逻辑及源码示例
NFT元宇宙链游系统开发涉及区块链、NFT、智能合约等核心技术。区块链确保去中心化和透明性,NFT用于确认数字资产所有权,智能合约管理数字资产的交易。源码示例展示了基于Solidity的NFT链游智能合约,包括NFT的铸造、收获和查询功能。
|
存储 人工智能 数据可视化
AI计算机视觉笔记二十一:PaddleOCR训练自定义数据集
在完成PaddleOCR环境搭建与测试后,本文档详细介绍如何训练自定义的车牌检测模型。首先,在`PaddleOCR`目录下创建`train_data`文件夹存放数据集,并下载并解压缩车牌数据集。接着,复制并修改配置文件`ch_det_mv3_db_v2.0.yml`以适应训练需求,包括设置模型存储目录、训练可视化选项及数据集路径。随后,下载预训练权重文件并放置于`pretrain_models`目录下,以便进行预测与训练。最后,通过指定命令行参数执行训练、断点续训、测试及导出推理模型等操作。
1330 3