论文部分内容阅读
《电脑爱好者》2006年第5期的《一分钟打造绿色移动版IE7.0》一文介绍了无需安装即可使用IE7.0的好方法。正如该文所述,“虽然可以用”,美中不足的是“也有一些小毛病,例如,查看网页属性时,一些按钮显示为乱码。另外,用网页发送信件时,添加附件不能用浏览来定位,只能手工输入路径”。
问题分析:为什么用IE6打开网页不会出现乱码及阻止弹出窗口的问题,而用IE7.0就会呢?没错,因为IE7.0程序是英文Beta版的!根据该文所述它是绿色版的,无需任何安装,所以不存在普通安装程序在注册表中添加项、键值的情况,因此不太可能是注册表中的项、键值导致上述状况。如果注册表有所变化,相信也是在运行IE7.0所调用的文件导致的。而在运行过程中,IE7.0一般只会调用IE文件夹及系统目录中(通常为C盘)的文件。无论运行IE6还是IE7.0,系统目录中的文件不会存在任何差异,所以导致上述情况的“罪魁祸首”只可能存在于IE7.0文件夹中,就是说,IE7.0文件夹中的文件都有嫌疑!
问题解决:目标范围已经确定,下面让我们揪出这个(些)文件!
第一步:先下载并解压listdlls压缩包 (下载地址:http://www.sysinternals.com/Files/ListDlls.zip),然后按Win+R键调出“运行”框,输入CMD打开命令提示符窗口,在该窗口中进入存放listdlls的目录中;
第二步:运行IE6,在地址栏中输入http://www.cfan.com.cn转到Cfan网站,在图1中的“搜索”图标上右击鼠标,选择“属性”弹出正常(非乱码)属性窗口。接着,切换到刚才的命令提示符窗口,输入listdlls –r iexplore.exe>IE6.txt(见图1),则运行IE6所调用的文件(包括非DLL文件)均已记录在IE6.txt中了;
第三步:以IE6.txt中所列的除iexplore.exe外任何一个文件名(比如ntdll.dll)为搜索条件在IE7文件夹中进行搜索,如果存在同名文件,则先关闭IE7浏览器,然后从IE6.txt所载明的位置处拷贝该文件并替换掉IE7文件夹中的同名文件;如果不存在,则跳过;每替换一个文件,则重启一次IE7并登录到Cfan网站进行验证。
注意:在替换过程中,有时会出现无法替换的情况(见图2),此时你必须结束“任务管理器”中的“iexplore.exe”进程(见图3);有时替换某个文件后会出现“无法定位序数XXX于动态链接库*.dll上”(见图4)的错误提示并导致无法运行IE7.0,这时必须撤销对该文件所进行的替换操作。
也许是我人品好,也许是我运气佳,总之,不到半小时就找出“真凶”——mshtml.dll(呵呵,其实偶是从IE6.txt中所列的最后一个文件开始找起,逆序向上倒找,所以比较快。再登录到Sina邮箱进行网页信件发送,竟意外地发现原先不可弹出的“浏览”窗口也已“痊愈”了,真是“得来全不费功夫”!
经过一番摸索,终于找到了解决上述问题的方法:只要将Windows XP中的mshtml.dll(通常位于C:\Windows\ system32文件夹中)替换解压文件夹(为方便叙述,本文解压文件夹以IE7.0为名)中的同名文件即可,故障消失(见图5、图6)。
必须说明的是,在163邮箱中始终存在二级链接打不开的情况,希望有高手可以指点。另外,对于试用IE7.0后会发生IE6无法使用的问题,解决的办法其实很简单:只要找到并删除注册表中的HKEY_CLASSES_ ROOT\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}项即可。
问题分析:为什么用IE6打开网页不会出现乱码及阻止弹出窗口的问题,而用IE7.0就会呢?没错,因为IE7.0程序是英文Beta版的!根据该文所述它是绿色版的,无需任何安装,所以不存在普通安装程序在注册表中添加项、键值的情况,因此不太可能是注册表中的项、键值导致上述状况。如果注册表有所变化,相信也是在运行IE7.0所调用的文件导致的。而在运行过程中,IE7.0一般只会调用IE文件夹及系统目录中(通常为C盘)的文件。无论运行IE6还是IE7.0,系统目录中的文件不会存在任何差异,所以导致上述情况的“罪魁祸首”只可能存在于IE7.0文件夹中,就是说,IE7.0文件夹中的文件都有嫌疑!
问题解决:目标范围已经确定,下面让我们揪出这个(些)文件!
第一步:先下载并解压listdlls压缩包 (下载地址:http://www.sysinternals.com/Files/ListDlls.zip),然后按Win+R键调出“运行”框,输入CMD打开命令提示符窗口,在该窗口中进入存放listdlls的目录中;
第二步:运行IE6,在地址栏中输入http://www.cfan.com.cn转到Cfan网站,在图1中的“搜索”图标上右击鼠标,选择“属性”弹出正常(非乱码)属性窗口。接着,切换到刚才的命令提示符窗口,输入listdlls –r iexplore.exe>IE6.txt(见图1),则运行IE6所调用的文件(包括非DLL文件)均已记录在IE6.txt中了;
第三步:以IE6.txt中所列的除iexplore.exe外任何一个文件名(比如ntdll.dll)为搜索条件在IE7文件夹中进行搜索,如果存在同名文件,则先关闭IE7浏览器,然后从IE6.txt所载明的位置处拷贝该文件并替换掉IE7文件夹中的同名文件;如果不存在,则跳过;每替换一个文件,则重启一次IE7并登录到Cfan网站进行验证。
注意:在替换过程中,有时会出现无法替换的情况(见图2),此时你必须结束“任务管理器”中的“iexplore.exe”进程(见图3);有时替换某个文件后会出现“无法定位序数XXX于动态链接库*.dll上”(见图4)的错误提示并导致无法运行IE7.0,这时必须撤销对该文件所进行的替换操作。
也许是我人品好,也许是我运气佳,总之,不到半小时就找出“真凶”——mshtml.dll(呵呵,其实偶是从IE6.txt中所列的最后一个文件开始找起,逆序向上倒找,所以比较快。再登录到Sina邮箱进行网页信件发送,竟意外地发现原先不可弹出的“浏览”窗口也已“痊愈”了,真是“得来全不费功夫”!
经过一番摸索,终于找到了解决上述问题的方法:只要将Windows XP中的mshtml.dll(通常位于C:\Windows\ system32文件夹中)替换解压文件夹(为方便叙述,本文解压文件夹以IE7.0为名)中的同名文件即可,故障消失(见图5、图6)。
必须说明的是,在163邮箱中始终存在二级链接打不开的情况,希望有高手可以指点。另外,对于试用IE7.0后会发生IE6无法使用的问题,解决的办法其实很简单:只要找到并删除注册表中的HKEY_CLASSES_ ROOT\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}项即可。