2012年2月11日 星期六

mshtml.dll 错误导致IE关闭的解决方案

关闭 iexplore 浏览器再打开刚才出错的网页,也报错,我把电脑重启再开那个网页,好像没有报错了,可是却不能翻看下页,刷新网页,再次报错。我不死心,继续通过各种方法去打开那个网页,可屡试屡不爽,百发百不中。浏览其它网站网页都无问题,偏偏就是我现在最想看的内容看不到,那个气呀启一个“气”字了得。

       “气定思气”,这个不大不小的 mshtml.dll 错误问题让我警觉,誓必要解决。上网一搜,才知道,虽在不同网页,却和我有共同遭遇的网友,很多很烦躁,他们也提出了许多解决办法,大体有如下几种:

       1、C:\WINDOWS\system32 里的 mshtml.dll 文件已破坏,可从其它电脑系统或标准安装版系统光盘中提取相同的 mshtml.dll 文件进行替换。从其它电脑上复制相同的 mshtml.dll 文件要注意10个数字的版本号须匹配。从原标准安装版的系统光盘中提取 mshtml.dll 文件可如此做,在系统光盘的 I386 文件夹里找到 MSHTML.DL_ 文件,把它复制到硬盘上,把它的扩展名 .DL_  改成 .cab 它会变成一个cab压缩包,打开这个压缩包就可以看到里面的 mshtml.dll 文件了。不论从哪里复制替换 mshtml.dll 文件,都还要记得替换 C:\WINDOWS\system32\dllcache 里相对应的备份 mshtml.dll 文件。此法我已试过,对我无效,希望对其它网友有用。

       2、mshtml.dll 文件没有被 IE 正确关联,可运行命令使其再次关联。关联方法较简单,点击“开始”菜单里的“运行”,在空框处填入 regsvr32 /u mshtml.dll 命令先卸载关联,如果卸载成功,会提示“ mshtml.dll  中的 DllUnregisterServer 成功。”,然后再填入 regsvr32 mshtml.dll 命令进行关联,如果关联成功,会提示“ mshtml.dll  中的 DllRegisterServer 成功。”,最后重启电脑即可。此法最好在安全模式下进行,以防系统正在使用 mshtml.dll 文件而导致卸载和关联失败。此法我也试过,对我无效,希望对其它网友有用。

       3、mshtml.dll 文件与系统上的其它软件程序不兼容而产生冲突,可升级系统补丁或升级相应软件。我把C盘格式化后重新安装了标准版系统,只装硬件驱动,未安装其它任何补丁 和软件,也未对系统做任何类似优化的更改和设置,再打开先前曾经报错的网页,一切正常,尝试多种不同方法打开那网页,还是一切正常,再无报错,可以找到症 结了。我的电脑安装了不下30种软件程序,要是逐个排查那工作量就太大了,只好寄希望于微软公司的Windows升 级补丁。在微软下载中心的补丁海洋里游了大半天,找到N多关于IE及系统的补丁,难道让我把这些补丁全都装上?真要如此,即使解决了问题也不能知道问题的 真谛,于是我把那些补丁个个解压,细细查看,发现几个和 mshtml.dll 及IE关系甚密的补丁,它们是 scripten、KB923996、KB937143、KB942615。在我反复尝试之下,发现解决我 mshtml.dll 报错问题的补丁就是KB937143,它把我的 mshtml.dll 由6.0.2900.2180 升级到了6.0.2900.3157。

       至此,困扰我24小时的 mshtml.dll 报错问题总算得以解决。关于那几个关键补丁,大家可以去微软的网站查看、下载,下载和安装可要注意你的系统版本及语言种类,牛头对马嘴是会很别扭的。以上方法我是在XPSP2系统上测试的,对于那些非XPSP2系统的用户未必可行。

       4、如果实在找不到快捷的解决之法,建议格式化C盘后使用WindowsXPSP2标准安装版(非克隆版)的完好光碟重装系统,只安装好各种硬件的驱动程 序,试试看是否能正常上网,理论上应该是可以恢复正常的。如果恢复正常,强烈建议用此时先用Ghost做个备份后再安装其它软件,以防不测;如果在纯系统 和驱动的状态下仍然出错,那么你需要怀疑你的安装光盘或硬盘是否有问题,例如碟面损坏、低劣的破解版、硬盘有坏道等等。在安装其他软 件之前,建议各位有必要先安装scripten、KB923996、KB937143、KB942615这几个系统补丁,因为它们对于解决软件和IE的兼 容问题很有帮助。如果在安装了各种软件后IE又开始报mshtml.dll 的错,那么可以肯定,问题出在软件上,你要是非得把问题弄个水落石出的话,那你恐怕只能对你安装的软件实行逐个排查了。