5  Windows操作系统异常

我们在使用电脑的过程中,除了硬件和软件会出现故障外,Windows操作系统也会出现这样或那样的故障,其中最为常见的就是Windows弹出各种各样的错误对话框,或者提示某个组件损坏,甚至丢失了某个DLL文件。

Windows是我们的电脑使用平台,它的稳定性直接影响到我们的正常使用,因此明白操作系统产生的各种错误以及正确处理这些故障是非常重要的。本章将全面介绍操作系统异常时的各种故障表现。

5.1  Windows出现错误对话框

Windows出现错误对话框即表示操作系统中的某些设置出现了问题,很多用户在遇到这种对话框时不详细查看就匆匆单击“确定”,其实这里面提供给我们很多解决问题的信息,所以读者一定要仔细查看错误信息,而后根据错误信息来进行进一步的故障处理。

5.1.1  IP地址与网络上的其他系统有冲突

问:我在单位使用的系统一直以来都很正常,但是最近发现开机后不久就会提示“IP地址与网络上的其他系统有冲突”,此时无法上网。但有时开机后很长时间才会出现这样的提示,而且也可以正常上网。请问是什么原因?

答:这是因为在用户的局域网中有其他人使用了与用户同样的IP地址。如果用户开机后就出现该提示表明另外一台机器已经开机并已经占用了该IP地址,因此用户的机器也就无法上网。

而如果用户先打开机器,随后另外一台机器开机并占用该IP地址,此时用户的机器上虽然有IP冲突的提示,但仍然使用正常,而另一台机器则无法接入网络。也就是说谁开机早谁正常使用。

其实要彻底解决这个问题并不复杂,只要给我们的机器重新指定IP地址就可以了。而在进行操作前首先要弄清楚网卡的IP获取类型,是静态IP地址还是动态IP地址。有一种比较简单的辨别方法,操作步骤如下:

1)单击“开始”菜单,单击“控制面板”选项进入控制面板,并双击“网络连接”图标,如图5-1所示。

2)右键单击“本地连接”,并单击“属性”,出现“本地连接 属性”对话框。在“常规”选项卡中,双击“Internet协议(TCP/IP)”弹出“Internet协议(TCP/IP) 属性”对话框。

3)如果所有文本框都为灰色,那么说明IP地址是自动获取的。如果里面标有数字,那么就是静态IP地址,如图5-2所示即为静态IP地址。

           

5-1 “网络连接”对话框                      5-2  设置网卡IP地址

确定网卡的IP获取类型后,就要选择不同的方法。

如果是静态IP,那么只需要修改“IP地址”文本框中的最后一组数字,如图将数字“99”改为小于255的其他数字就可以了。如果系统提示有其他人使用,那么再试其他的数字。直到系统不再提示有人使用为止。

如果是动态IP,那么按照下列步骤操作:

1)首先单击“开始”菜单,然后单击“运行”。键入“cmd”命令,打开命令行。

2)键入ipconfig /release,按回车键,释放现有IP地址,等待程序运行完成,如图5-3所示。

3)再键入ipconfig /renew,按回车键,重新获取IP地址,如图5-4所示。

  

5-3  释放现有IP地址                          5-4  重新获取IP地址

4)此时网卡重新获取了IP地址,网络即可恢复正常。

5.1.2  安装程序启动安装引擎失败

问:我在安装CuteFTP时提示,提示“安装程序启动安装引擎失败:不支持此接口”,安装其他软件也出现类似的提示,我该怎么办?

答:引起这个问题的原因比较多,但最可能的原因则是软件安装需要的Windows Installer出现了问题。

1)打开“控制面板”,双击“管理工具”,如图5-5所示。

2)双击“服务”,找到Windows Installer服务,如图5-6所示。

  

5-5  管理工具                             5-6  Windows服务列表

3)双击该条目,在出现的对话框中单击“启动”按钮,如图5-7所示。

4)重新安装CuteFTP。如果仍然不能解决问题,请到http://www.cuteftp.com/downloads/index.asphttp://www.simble.com/book/ index.htm下载Windows Installer更新。

另外以下几个原因也有可能造成类似的故障:

1)有些安装程序并不是EXE文件,而是MSI文件,如图5-8所示。MSI是脚本文件,如果你运行MSI安装程序时出现不支持接口的提示,那么双击instmsiw.exe文件就可以解决问题,其原因就在于instmsiw.exe文件里包含了所有关于运行MSI所需要的文件,如图5-8所示。

      

5-7  关闭服务                              5-8  instmsiw.exe文件

2)如果没有管理员权限或者系统文件损坏也有可能造成不支持此接口,从而无法进行软件安装。

5.1.3  安装ikernel.exe时出错

问:我最近刚刚格式化C盘并重新安装了操作系统。但在安装一些软件时老是出现“安ikernel.exe 时出错(0x1200),系统无法读取指定的设备”提示,导致安装不能正常进行。这些程序的安装盘都是保存在硬盘上的,以前也都是可以正常安装的。请问是怎么回事?该如何解决?

答:“ikernel.exe”文件是软件程序安装时必需的,只有支持这个文件安装过程才可以进行下去。“ikernel.exe”文件是Windows的安装程序引擎,Windows默认下是不允许同时有两个这样的程序运行的,我们可以按“Ctrl+Alt+Del”查看任务管理器中是否有这个文件,如果有,选中后单击“结束任务”按钮,应该就可以继续安装软件了,如图5-9所示。

另外,如果某些程序修改了ikernel.exe文件,或者ikernel.exe文件版本太旧,也有可能会发生这种故障。对于这种情况,可以删除C:\Program Files\Common Files\InstallShield目录,如图5-10所示。重新启动系统后再执行安装程序,安装程序会自动重建该目录,从而重建ikernel.exe文件。

          

5-9  ikernel.exe程序                   5-10  自动重建InstallShield目录

5.1.4  无效页错误

问:我在操作电脑时,有时系统会突然弹出一个警告信息:“msgsrv32kernel32.dll模块中产生了一个无效页”,不知道这种故障是如何产生的,应该怎么处理?

答:这个错误提示通常出现在电脑大量进行数据交换的过程中,就像前面所介绍过的,内存缓存区一旦出现问题可能导致程序运行一个错误指令,最终结果就看到了“Invalid Page Fault(无效页错误)”。

这个错误发生的原因很复杂,但是归纳起来也不外乎以下几条,笔者在此分别列出解决方法。

原因1:物理内存太少而导致虚拟内存运行不稳定。

解决方法:增加物理内存或者尽量少运行大型程序,或者可以手动设定虚拟内存。具体步骤参考本书第2章第1节。

原因2:剩余硬盘空间太小,虚拟内存损坏或被某个应用程序破坏。

解决方法:对C盘进行清理,操作步骤如下:

1)运行“磁盘整理程序”。在Windows XP中依次单击“开始”→“所有程序”→“附件”→“系统工具”→“磁盘清理”,运行后效果如图5-11所示。

2)在“驱动器”下拉菜单中选择“C:”盘,单击“确定”按钮,经过如图5-12所示的程序计算后,会出现如图5-13所示对话框。

          

5-11  清理磁盘            5-12  计算可释放空间            5-13  删除无用文件

3)在“要删除的文件”列表框里面列出了C盘可以删除的无用文件。笔者建议使用程序的默认选择就可以了。单击“确定”按钮后,程序开始清理这些文件。

原因3:某个程序设计上的缺陷,使用了不当的或其他程序正在使用的内存。

解决方法:关闭该程序后重新启动,或者重新启动机器后直接运行该程序。

原因4Windows的内存管理程序出现了问题,可能是因为个别DLL文件损坏造成的。

决方法:做好资料备份后,重新安装操作系统。具体步骤可以参看本书第16章第1节。

5.1.5  Explorer执行非法操作”警告

问:我的电脑在使用IE浏览器上网时,经常出现“IE非法操作”、“出现内部错误关闭窗口”,因此上网不久后就会关闭浏览器,而使用其他的软件都很正常,即使重新安装系统也会出现这种故障,更换内存后,问题也没有解决,请问如何处理?

答:这是由于系统不稳定造成的,具体原因有很多,首先应检查系统是否感染了病毒,然后可以重新安装新版本的IE试试,如果用户已经换过硬件,确认硬件没有问题,那么我们可以调整一下软件方面的设置。

1)将显卡由32位真彩色降为16位色彩,并关闭“硬件加速”功能。

2)升级显卡驱动程序。具体可以参考本书第16章的驱动程序专题。

3)此外,在上网时不要打开太多的IE窗口。一般不要超过10个,否则出错的几率就会增大。

5.1.6  提示“Rundll32错误”

问:我在Windows操作过程中经常遇到系统提示“Rundll32错误”,如果在弹出的对话框中单击“确定”按钮,系统会强行关闭正在使用的程序,如果不单击“确定”按钮,则无法关闭该对话框,不知应该如何解决?

答:DLL文件是动态链接库文件,最早由微软提出,其原理是每个程序所需的代码可以从同一个地址获取,便于程序间共享。但是在带来方便的同时,也成了Windows最大的弱点:应用程序在安装时为了让自己运行得更好,会将这些DLL文件升级成自己的版本,这样就导致其他程序甚至连Windows自己都无法使用该DLL文件。

出现Rundll32错误可能是因为操作系统中的mmsystem.dll文件损坏或丢失,只要在其他电脑上复制此文件覆盖即可。

5.1.7  提示“ActiveX控件不安全”

问:每当我打开文件夹的时候就会出现提示信息:“ActiveX控件不安全,因此可能无法正确显示该页”,有“确定”与“放弃”两个选择。当选择“确定”后则进入文件夹,在使用Word时也出现类似的情况,只有单击“确定”按钮后才可进入,能说明原因并给出解决对策吗?

答:这是因为你在IE的安全设置中将ActiveX控件和插件设置成禁用了,而你打开的文件中又含有此控件,所以就会出现此提示。

1)在IE中执行“工具”→“Internet选项”,单击“安全”选项卡,如图5-14所示。

5-14  Internet安全级别

2)单击“Internet”,单击“默认级别”按钮,设置为默认安全级别,同样将“本地Intranet”、“受信任的站点”、“受限制的站点”等全部设置为“默认级别”即可。

5.2  注册表引起的故障

相信几乎所有的读者都听说过注册表这个概念,简单来说,注册表就是存储和配置各种Windows信息的一个仓库,为了方便管理又将这些信息进行了分类存储。其中的每一个存储单元我们称之为键,而键值按照不同的类型又分为字符串值、DWORD值、二进制值等。

当我们进入Windows后,只要单击“开始”菜单,然后单击“运行”,键入regedit命令,就可以打开注册表编辑器。在这里可以看到5大部分,依次是:

HKEY_LOCAL_MACHINE:存储本机信息。

HKEY_CLASSES_ROOT:存储文件关联信息。

HKEY_CURRENT_USER:存储当前用户的配置文件信息。

HKEY_USERS:存储动态加载的用户配置文件的信息。

HKEY_CURRENT_CONFIG:存储设备驱动程序的信息。

如图5-15所示。

5-15  注册表结构

5大部分中,我们最常使用的是HKEY_LOCAL_MACHINEHKEY_CURRENT_ USER下的子键值。本节将对一些常见的注册表故障以及通过注册表可以解决的故障加以介绍。

5.2.1  注册表编辑器已被管理员禁用

问:我在执行regedit命令时,系统会弹出一个对话框:“注册表编辑器已被管理员禁用”,根本无法运行regedit命令,请问如何解决?

答:这种故障是因为用户不小心禁用了注册表,或者有其他恶意程序修改了注册表,只要修改注册表中的某一个键值即可解决该问题。那么需要修改注册表来解决,而注册表又无法使用,笔者在此介绍在不运行注册表编辑器Regedit的情况下修改注册表为注册表解锁的方法:

1)依次单击“开始”→“程序”→“附件”→“记事本”,启动记事本程序。

2)在记事本窗口中输入以下内容(见图5-16):

REGEDIT4

(此行空格)

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System"DisableRegistryTools"=dword:00000000

HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\Policies\System

"DisableRegistryTools"=dword:00000000

3)从“文件”菜单上选择“保存”命令,以“C:\unlock1.reg”名称存盘。此文件图标如图5-17所示。

4)双点“unlock1.reg”文件,系统弹出如图5-18所示对话框。点“是”按钮,随后弹出对话框:“C:\unlock1.reg里的信息已被成功地输入注册表”,表明导入成功。单击“确定”按钮关闭对话框,这时注册表已被成功地解锁了。

                

5-16  解锁注册表文件               5-17  注册表文件图标

 

5-18  注册表修改确认

如果双击该文件时仍然出现“注册表编辑器已被管管理员禁用”对话框,那么只能使用组策略来解决。这也是注册表的弊端所在,因此笔者建议对注册表稍有了解后,直接使用组策略进行系统优化和管理。

5.2.2  每次开机都弹出一个“注册表故障恢复”

问:我的电脑新安装了Windows XP SP2版本,每次启动都提示“Windows—注册表故障恢复,必须使用记录或另一备份以恢复包含系统注册表数据的文件。”请问这是什么原因,是否正常?

答:出现这种提示是因为Windows自行对注册表进行了恢复,那么从另一方面来说也就是说注册表已经被损坏。此时我们应该及时对注册表进行备份。操作步骤如下:

1)单击“开始”菜单,然后单击“运行”。键入regedit命令,打开注册表编辑器。

2)单击“文件”菜单,执行“导出”命令默认地将备份文件放到“我的文档”目录中,如图5-19所示。

5-19  导出注册表键值

3)在“文件名”中输入bak,将导出的文件命名为bak.reg

4)在“导出范围”选项组中选中“全部”单选项,然后单击“保存”按钮。

5)此时在“我的文档”中就有了名为bak.reg的注册表文件。该文件即为注册表的备份。

以后出现问题时可以双击此文件以进行注册表恢复。

5.2.3  注册表丢失,找不到安装目录而无法卸载

问:我在“添加和删除程序”中删除软件时,出现“注册表丢失,找不到安装目录,无法卸载”对话框,请问应该怎么办?

答:一般来说,出现这种问题只要重新安装要卸载的软件,然后使用该软件的卸载程序进行卸载,就可以使卸载更干净、更快捷。

但是有些软件由于设计上的缺陷,卸载程序根本无效,只是删除了软件的文件夹,但是卸载信息仍然保留,此时可以按照下面的方法进行解决:

1)单击“开始”菜单,然后单击“运行”,键入regedit命令,打开注册表编辑器。

2)依次展开

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

找到要删除的程序所在项,如图5-20所示,一般单击左侧列表后看右侧的名称和数据就能看出哪个是要删除的。

5-20  删除不能删除的程序信息

3)在左侧右键单击要删除的选项,选择“删除”后删除该选项,然后再找到程序安装文件夹后删除即可。

5.2.4  Windows启动时显示一个窗口,单击“确定”按钮后才能进入桌面

问:我的机器在即将进入桌面时,总会弹出一个窗口,里面有一些网址之类的广告,只有单击“确定”按钮后才能进入桌面,是否是系统的错误信息?还是有什么需要提醒我注意的信息?

答:这个对话框是Windows的登录提示窗口,默认是不会出现的,不过有些恶意程序对它动上了脑筋,在这个窗口里做广告。在Windows XP下,控制该提示窗口的信息的“LegalNoticeCaption”和“LegalNoticeText”两个键值并不是网上所说的位于注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon下,而是位于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\Winlogon下。而如果想在电脑上停用警告消息,只需要将这两项留空即可。

具体操作步骤如下:

1)单击“开始”菜单,然后单击“运行”,键入regedit命令,打开注册表编辑器。

2)依次展开上述注册表分支。

3)分别双击右侧的“LegalNoticeCaption”和“LegalNoticeText”两个键值,并将这两个键值的“数值数据”设为空。设置完成后如图5-21所示。

5-21  Windows启动警告消息

5.2.5  注册表引起无法关闭电源

问:我是一名电脑机房管理员,机房电脑使用的是Windows XP,在实际管理中发现有时电脑不能自动关闭电源,而是停留在“现在可以安全的关闭电脑了”的画面上就不动了,可是我们的机箱都是使用的ATX电源,理论上应该可以自动关闭,请问是什么原因?如何来解决?

答:在注册表中有一项是关于是否允许自动关闭电源的功能,而用户所出现的这个问题是因为这些机器在安装时由于驱动程序的安装顺序不对产生了问题,或者主板驱动程序没有安装到位,所以导致Windows没有启用该键值。因此可以通过注册表手动修正这个问题,操作方法是:

1)单击“开始”菜单,然后单击“运行”,键入regedit命令,打开注册表编辑器。

2)依次展开

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon”。

3)在右窗格中找到或者新建一个REG_SZ类型的注册表项,名字为 Powerdown AfterShoutdown”,如图5-22所示。

5-22  PowerdownAfterShoutdown键值

4)双击将其值设为00为允许自动关闭电源功能,1为不允许自动关闭电源功能。

5)退出注册表编辑器,重新启动电脑后使设置生效。

5.3  错误提示

相信每位使用过Windows的用户都会遇到某个程序出现非法操作或错误提示的情况。微软公司为了更好地获取操作系统在发生故障时的状态,在Windows XP中,加入了错误报告机制(WindowsErrorReport-ing),该功能主要是在系统出现问题时询问用户是否通过网络将出现故障时的状态,所使用的DLL模块等信息发送给微软的专用服务器。

我们这里说的是一般错误,指的是Windows 2000/XP可以运行,不过会弹出错误信息,而不是指在Windows启动时出现的错误信息。如果在Windows启动时出现错误信息请参考本书第12章。

5.3.1  是否该发送错误报告

问:我的电脑在某个程序意外退出时,总会提示发送错误报告。我不知道是否应该发送,请问有没有好的建议?

答:首先笔者要说明的是,发送错误报告并不是什么大不了的提示信息,用户也完全不必在意电脑产生了什么重大的问题。做一个最简单的测试,在“任务管理器”中强制结束一个程序就会产生错误发送报告的提示。而实际上这种操作是由我们自己造成的,是完全可控的。

同样的道理,用户如果明白故障的发生原因,那么完全没有必要发送这个错误报告。而如果不知道原因,而且希望帮助微软更好地处理操作系统存在的问题,那么也可以选择发送错误报告。若选择发送,则系统自动收集相关信息并发送给微软公司。在报告发送完成后,如果有其他人已经报告过类似问题,微软会提供问题的解决方法,只要单击“其他信息”的链接,就会打开相关的网页,如图5-23所示。用户根据网页上的提示进行操作,即可解决问题。

5-23  发送错误报告

因为笔者对电脑较为了解,而且也观察过很多普通用户的使用习惯,发现绝大多数的程序崩溃都是因为程序本身的错误或者用户不当操作而造成的。所以笔者建议不发送该报告,而在使用软件时多多注意就可以了。而且有公司承认在此过程中收集了用户的某些信息,所以读者还是应该多多保护自己的权利。

5.3.2  如何有针对性地关闭错误报告

问:我的电脑最近出现程序Winword.exe经常出错而导致错误报告的出现,而我又不想把所有报告都关闭,请问应该怎么操作呢?

答:错误报告不仅可以全部关闭,而且也可以针对某一个程序,笔者就以Winword.exe程序为例,将该程序排除在错误报告之外。具体操作步骤如下。

1)在“我的电脑”上右键单击选择“属性”,在出现的“系统属性”对话框中,单击“高级”选项卡,单击“错误报告”按钮,出现如图5-24所示对话框。

2)单击“选择程序”按钮,在弹出的“选择程序”对话框中,单击“不为这些程序报告错误”下的“添加”按钮,打开“添加程序”对话框,如图5-25所示。

                 

5-24  错误报告                  5-25  针对某个程序关闭错误报告

3)然后输入程序的完整文件名称,如“winword exe”如图5-26所示。

5-26  添加特定程序不发送错误报告

4)单击“确定”按钮,则以后WORD即使出现程序错误,也不会弹出错误提示了。

如果读者需要查看最近的错误统计,可以选择“开始程序附件系统工具系统信息”命令,打开“系统信息”对话框,然后展开“软件环境”中的“Windows错误报告”即可。

5.3.3  应用程序自身BUG

问:是不是所有的错误提示都是因为我们的误操作造成的?有没有其他的原因?

答:如果程序出现错误提示异常退出的话,除了我们的误操作外,其实更多的是应用程序本身设计上的缺陷,也就是我们常说的软件BUG

软件设计必须要跟内存打交道,而程序在使用动态分配的内存的过程中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个本应该可用的内存已经失效了。因此程序无法获得必需的资源来运行,那么就自然会产生问题。

上述情况有可能是程序没有向操作系统请求分配内存,也有可能是程序自己在某个时候已经注销了这块内存。原本“合法”的程序变成了“非法”程序,而Windows作为管理者,为了保护其他程序的运行,那么只有终止该程序的运行,回收全部资源。

上述情况都属于程序自身的BUG,往往在特定的操作顺序下会重现错误。一般来说我们可以通过使用软件的最新版本来消除这种故障,前提是软件设计者已经发现并修复了该问题。

5.3.4  注册表错误

问:我刚刚下载了一些系统优化软件,并且对注册表进行了优化,可是在重新启动后,发现系统没法启动了。我个人估计应该是注册表的问题,请问如何解决?

答:Windows把系统的许多设置都组织起来,放到了注册表中,这样虽然易于管理一些,但同时也带来了这样的问题:如果哪个安装程序的卸载程序做得不好,很容易在注册表中留下一些垃圾。而随着时间的流逝,安装/删除程序的增加,注册表的体积也在不断膨胀,系统运行速度也会逐渐变慢,而如果有些软件破坏了注册表,轻则不能使用部分软件,重则系统不能启动。而该问题就属于此类故障。

为了避免类似的故障,笔者建议读者多多参考本书第1章的注意事项,尤其是对于删除软件的方式方法,还有就是对于一些软件的使用也要特别注意。出现注册表错误有一种简单易行的解决方法,我们只要将系统自动备份的注册表恢复就可以了。

现在市面上有很多注册表方面的书,通过修改注册表来提升系统性能和个性化设置更是读者都很熟悉的事情,可是修改前一定要记得备份,而且不要过分迷信某些优化软件。只要多多了解系统的运行,不必进行优化也可以保证系统的稳定高速运行。

5.3.5  系统出错,无法启动文件WSock32.dll

问:我的电脑在上次卸载了某个软件后,提示说还有c:\windows\system\WSock32.dll没删掉。然而重新启动后与上网有关的所有程序(如IEOE)都无法运行,提示说“系统出错,无法启动文件WSock32.dll。请检查文件,确定问题的原因”。我该怎么解决?

答:这种问题是典型的Dll文件被覆盖所产生的,从IEOE等出错来看,足以说明是系统文件遭到破坏引起的,同时我们也知道了遭破坏的文件是WSock32.dll。解决方法是从Windows安装盘释放一个WSock32.dll文件到提示目录(c:\windows\system\下)。具体操作步骤如下:

1)在Windows光盘上单击右键,选择“搜索”命令,在弹出的“搜索”窗口中,在“全部或部分文件名”文本栏中填入WSock32,如图5-27所示。

2)单击“搜索”按钮,可以看到在右边查找到一个名为“WSock32.dl_”的文件(不同Windows版本的搜索结果也不同)。

3)只要将这个文件复制到c:\windows\system\下,并命名为“WSock32.dll”即可。如图5-28所示。

         

5-27  搜索文件                               5-28  搜索结果

DllOcx文件是很容易被覆盖的,所以当安装软件的时候如果出现“某某文件将被覆盖,是保留老版本文件还是替换”的提示时,一定要记下该文件名称,最好不要替换,这样至少可以保证已经安装的软件和系统的正常运行。

5.3.6  使用“事件查看器”查看系统错误信息

问:在Windows中有一个程序名为“事件查看器”,据说该程序记录了系统的运行状态,请问如何使用?

答:Event Viewer(事件查看器)相当于操作系统的运行日志,对于电脑发生的重大事件均予以记录,甚至可以自行添加某些特定操作的记录。在此笔者仅介绍如何查看已存在的错误信息。具体步骤如下:

1)进入“控制面板”,双击“管理工具”,然后双击“事件查看器”,启动“事件查看器”程序,如图5-29所示。

2)单击左边的“应用程序”,在右边的列表框中,我们可以看到一个前面标有“×”的错误信息,双击查看该出错信息的详细内容。

3)在弹出的出错信息描述中,我们可以看到这样的描述:"The messenger service terminated with service-specific error 2270.",我们注意到该描述的最后有“error 2270”字样,也就是说出错信息代号为2270

4)单击“开始”按钮,选择“运行”,打开一个命令行窗口,输入“net helpmsg 2270,现在就应该看到出错信息了。具体信息如下:

“电脑名无法作为消息别名添加。网络上可能已经有此名称”

5)从描述中,我们可以看出现在这台电脑的Message Alias(消息别名)已经在网络上注册了。请另外给本台电脑命名就可以了。只要在“我的电脑”上右键单击,选择“属性”,选择“计算机”,单击“更改”按钮,如图5-30所示。

           

5-29  事件查看器                              5-30  更改电脑名

6)在“计算机”文本框中输入另外一个名称单击“确定”,重新启动后,使新名称生效就可以了。

Windows的出错信息是难以穷尽的,笔者也是通过上述内容尽可能地提供给读者一种解决思路,而不是单纯地解决一种特定的故障,读者只要掌握了上述方法,就可以对待各种Windows出错信息。

5.4  DllOcx文件错误提示

DLL文件是Windows的动态连接库文件,这种文件包含了很多公用的组件,当某一个程序要使用时,只要调用该文件即可。而OCX文件则是控件文件,这种文件的作用是给我们显示窗口中的内容,如按钮、边框等。这两种文件是Windows程序设计的基础,因此如果这些文件出现了问题,轻则导致某些程序无法正常运行,严重的话则会造成Windows的崩溃。

5.4.1  运行程序时出现MSVBVM60.DLL错误

问:我在Windows中运行一些程序时,系统总是弹出一个错误提示,提示信息为“没有找到MSVBVM60.DLL,因为这个应用程序未能启动,重装应用程序可能会修复此问题”。请问这是怎么回事?如何才能解决这个问题?

答:MSVBVM60.DLL是微软的VB运行库文件,一些使用了微软VB语言的应用程序或游戏都需要该库文件的支持。用户所遇到的问题应该是系统丢失了该文件而导致的。

只要在其他机器上找到该文件并将该文件复制到系统文件夹下的Windows\System32子文件夹中。如果不想手工操作,也可以到

http://www.microsoft.com/downloads/details.aspx?FamilyID=7b9ba261-7a9c-43e7-9117-f673077ffb3c&DisplayLang=zh-cnhttp://www.simble.com/book/index.html下载该程序包直接安装即可。

5.4.2  d3d9.dll出错

问:我在运行游戏时出现了错误:“启动文件时出错,找不到所需的.DLL文件D3D9.DLL”,游戏无法运行,请问如何解决这个问题?

答:这是因为系统中没有安装DirectX 9,大多数游戏开发时都是使用的DirectX平台,因此,我们的游戏在运行时当然也需要这个环境。要解决这个问题,我们只要安装DirectX就可以了。

一般游戏安装盘都会自带DirectX安装程序,如果没有,可以到http://www.microsoft.com/downloads/details.aspx?FamilyID=9226a611-62fe-4f61-aba1-914185249413&DisplayLang=zh-cnhttp://www.simble. com/book/index.htm下载,因为该程序不是一个直接可以安装的程序,所以笔者认为有必要叙述一下安装步骤:

1)双击下载得到的程序,并在文本框中输入“c:\dx9,将DirectX安装文件解压缩到c:\dx9目录,如图5-31所示。

2)单击“OK”按钮后,会弹出确认对话框,大意是说“该目录不存在,是否要创建?”;单击“是”按钮,将开始解压缩,如图5-32所示。

3)解压缩结束后,进入C盘我们可以看到多了一个名为dx9的文件夹,这就是我们刚刚创建的文件夹,并且DirectX安装文件已经在里面了。双击进入该文件夹,如图5-33所示。

4)找到“dxsetup”程序,运行安装程序,同意协议后,单击“下一步”按钮安装DirectX程序。

            

5-31  解压缩DirectX安装文件                      5-32  解压缩进度

5-33  DirectX安装文件夹

5)安装完成后重新启动机器,此时就可以进入游戏了。

5.4.3  加载C:\WINDOWS\downlo~1\CnsMin.dll错误,找不到指定模块

问:我的电脑一开机就出现“加载C:\WINDOWS\downlo~1\CnsMin.dll错误,找不到指定模块”,请问是怎么回事?怎么去掉这个错误信息?

答:首先要告诉用户的是CnsMin.dll 不是病毒,是3721上网助手软件的一个文件。CnsMin.dll3721的核心文件,通常存在于C:\windows\Downloaded Program Files,通过注册表Run键值加载。

有一段时间笔者看到3721写进了驱动层无法彻底删除的消息,但经笔者试用后发现,3721的卸载程序已经能够比较彻底地卸载该程序。但是尽管如此,笔者认为有些卸载问题还是有必要说明一下:

1)安装3721软件要向操作系统添加文件。在安装过程中除了写入一些临时文件外,会在C:\windows\Downloaded Program Files目录中建立 cnsmin.dllyascnsup.inicns02.dat等文件。

2)然后是注册表项:程序的启动方式是在HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\Windows\CurrentVersion\Run

加启动项,启动方式则是用rundll32注册cnsmin.dll文件,尽管上面的文件并不太多,但都具有很强的自我保护功能,如cnsminkp.syscnsmin.dll是无法删除或是改名的。其作用机制是:如果删除或改名3721的话,3721会给系统返回一个删除成功的消息。实际上该文件并没有被删除,而是依旧存在于系统中。

其实对于该软件的卸载,完全不必过于在意,长期的试验和意见反馈已经使雅虎公司逐渐完善了该软件的卸载程序,早期的卸载程序会询问你是否保留控件过滤功能,以及保留上网助手的功能。现在的卸载程序已经得以简化,不过仍然需要提交一些卸载原因。经过笔者测试,完全可以彻底的卸载该软件。卸载方法如下:

1)进入控制面板,双击“添加或删除程序”,出现可以删除的程序列表,如图5-34所示。

2)找到“雅虎助手”,单击该行中的“更改/删除”按钮,如图5-35所示。

  

5-34  删除程序列表                          5-35  删除雅虎助手

3)单击最后一项“现在就卸载”,然后再次确认后,会在IE中打开一个信息,如图5-36所示。选择卸载原因后,单击“马上卸载”按钮,方能卸载。

5-36  确认删除雅虎助手

4)在“添加/卸载程序”里找到“网络实名”后重复上述操作。

5)重新启动机器后,3721就正常卸载了

5.4.4  部件mscomctl.ocx错误

问:我在网上下载了一个软件,但安装完后,运行的时候出现“部件MSCOMCTL.OCX或其附件之一不能正确注册:一个文件丢失或无效”这样的提示,不知道是为什么?如何解决?

答:出现这种故障是因为缺少了mscomctl.ocx文件。只要安装MicrosoftVB6组件包就可以解决。当然也可以到网上搜索mscomctl.ocx控件后复制到C:\windows\system32文件夹下。

在此笔者需要说明一下频繁发生这种故障的原因,现在很多软件都直接或间接地使用了Windows自带的组件,比如我们在一个程序中需要打开文件时所出现的对话框,如图5-37所示。

5-37  控件OCX文件的作用

这就是我们常说的公用对话框,这种对话框几乎都需要mscomctl.ocx文件。那么为什么还会丢失这个文件呢?其原因就在于软件的卸载程序,如果电脑中同时安装了两个软件都需要这个文件,而在卸载其中的一个软件时,这个卸载程序会将该文件删除,那么另外一个软件也就无法正常使用了。

5.4.5  RICHTX32.OCX不恰当注册或错误

问:我的电脑这几天在运行几个程序的时候都出现一个英文对话框,用金山快译翻译后中文为“RICHTX32.OCX不恰当注册或错误”,请问有没有方法可以不重装系统而解决这个问题?

答:这种故障是因为程序需要RICHTX32.OCX文件,而这个文件又没有被系统注册,所以,我们要首先卸载这个控件,然后再重新注册该文件。具体操作步骤如下:

1)首先单击“开始”菜单,然后单击“运行”,键入cmd命令,打开命令行。

2)输入“regsvr32 /u RICHTX32.OCX”,按下回车键后,出现提示对话框,如图5-38所示,此时RICHTX32.OCX已经被卸载注册。

3)再次键入“regsvr32 RICHTX32.OCX”按下回车键,出现提示对话框,如图5-39所示,此时RICHTX32.OCX已经被重新注册。

  

5-38  卸载注册RICHTX32.OCX文件           5-39  重新注册RICHTX32.OCX文件

4)重新运行该程序,可以正常运行。

5.5  文件丢失

文件丢失引起的故障很多,几乎所有用过电脑的人都碰到过。文件丢失往往意味着电脑无法启动,软件无法运行。常见的文件丢失故障一般是由于病毒、误操作造成。操作不当、突然停电、病毒破坏或经常进行安装和卸载操作等情况都可能造成系统文件丢失或损坏的故障。一般系统文件丢失后,我们可以很容易地从出现的故障提示窗口中获得受损的文件名及路径,这样修复起来便非常简单了。

下面是笔者收集的一些比较常见的文件丢失故障,读者可以从中得到处理此类故障的通用方法。

5.5.1  Windows无法找到C:\Windows\Rundll32.exe

问:我使用的是Windows XP,在打开控制面板的时候弹出对话框提示说:“Windows无法找到C:\Windows\Rundll32.exe”,请问该如何处理呢?

答:Rundll32.exe是系统提供的一个动态链接库,用来调用32位的DLL函数,显然这个问题是该文件被损坏所造成的。我们可以通过下面的方法来恢复它:

1)将Windows XP安装光盘插入光驱,然后依次单击“开始→运行”。

2)在“运行”窗口中输入“expand x:\i386\rundll32.ex_ c:\windows\system32 \rundll32. exe”命令并按回车键执行(其中“x”为光驱的盘符)。

3)操作完毕后,重新启动系统即可。

5.5.2  hal.dll文件丢失

问:电脑安装的是Windows XP,启动时出现“hal.dll文件丢失”的错误提示,我不想再重装系统了,请问如何修复?

答:出现这个问题,大多是由于C盘根目录下的boot.ini文件非法导致的,因为操作系统默认会从C:\Windows启动,如果系统没有安装在C盘,则需要boot.ini文件来帮助系统引导。

解决此问题的方法是重新编辑boot.ini文件。可用的方法有很多,这里笔者介绍一个最简单的方法:用安装光盘启动系统,在安装界面选择进入故障恢复控制台,在命令行界面输入bootcfg命令,根据提示修复boot.ini文件,输入bootcfg / ?可以查看命令行帮助。如果实在不会用,也可以复制别的电脑上的boot.ini文件到你的C盘根目录去。

5.5.3  没有找到MFC42u.DLL

问:查看系统状态时出现没有找到MFC42u.DLL文件,请问如何恢复?

答:系统中有许多DLL动态链接库文件,它们一般存放在系统盘下的Windows\ System32文件夹中,当运行某一程序时会调用相应的DLL文件。而由于DLL文件是可以被多个程序共享的,所以当卸载或安装一些程序时,很容易将其一起卸载或进行不正确地修改操作。

如果在打开系统信息程序,来查看系统状态时出现没有找到MFC42u.DLL文件的提示错误,就说明该MFC42u.DLL文件已丢失了,解决这类故障一般有如下几种方法:

1)在Windows XP的安装光盘中查找是否有MFC42u.DLL文件,如果有直接将该文件复制到Windows\System32文件夹中即可。如果是压缩格式的,类似前例中的rundll32.ex_文件,可使用expand命令将光盘中的文件解压到System32文件夹中。

2)从另外一台同样操作系统的电脑上查找到MFC42u.DLL后,将其复制到故障机的System32文件夹中即可。

3)如果你觉得这样比较麻烦,那么可到一些专业DLL文件下载网站进行下载,比如http://www.2dll.com,这样只要在网页中找到相应的下载链接并将其下载到相应的文件夹中即可修复。

有些DLL文件复制到相应的目录后还需要进行注册,假如System32文件夹中的MFC42u.dll文件需要系统进行注册认证,这时可在运行窗口中执行“regsvr32 c:\windows\system32\MFC42u.DLL.dll”命令,进行组件的注册操作即可。

5.5.4  NTLDR文件丢失

问:我的电脑在登录系统时出现了“NTLDR is Missing Press any key to restart”的错误提示,请问是什么原因?

答:在高版本系统的基础上安装低版本的操作系统时,很容易造成NTLDR文件的丢失,这种故障可以在“故障恢复控制台”中进行解决。

1)进入故障恢复控制台,然后插入Windows XP安装光盘。

2在故障恢复控制台的命令状态下输入“copy F:\i386\ntldr c:\”命令并按回车键(“F为光驱所在的盘符)

3)然后执行“copy F:\i386\ntdetect.com c:\”命令,如果提示是否覆盖文件,则键入“y”确认,并按回车键。

在遇到NTLDR文件丢失的故障时,boot.ini文件多半也会出现丢失或损坏的情况。这样在进行了上述修复NTLDR的操作后,最好也执行如下命令:

1)在故障恢复控制台中执行“bootcfg /redirect”命令来重建boot.ini文件。

2执行“fixboot c:”命令,在提示是否进行操作时输入“y”确认并回车,这样Windows XP的系统分区便可写入到启动扇区中。

3)键入“exit”命令退出故障恢复控制台,重新启动电脑可以恢复正常。

5.6  关机后自动重启

我们在关闭计算机时,有时会遇到关机变成重启的问题,而一般情况下又很难找到故障原因所在。笔者在网上查找了相关的资料,但是发现很多解决方案根本就没有理论依据,所以在此节笔者将对该问题作一归纳,以便读者正确运用。

5.6.1  刚安装的系统关机变成重新启动

问:我的电脑最近出了一些问题,不知道为什么关机的时候明明单击了“关机”,可是过了一会竟然会重新启动,只能强行关闭电源来关机,请问如何解决?

答:关机变成重新启动是一种较为常见的故障,这个故障产生的原因也是多种多样的,不过总结起来主要是跟系统设置、高级电源管理的设置、USB设备有关。具体来说有以下几方面原因。

1)主板驱动的原因

如果没有正确安装相应的主板驱动,是会产生这个问题的,尤其是对于一些同品牌而且型号相近的电脑。在这样的情况下,虽然安装了不是本机主板的驱动程序,但是主板仍然能正常工作。“设备管理器”中也没有任何的设备异常警告,但是一旦关机,电脑会突然蓝屏后重新启动。所以在安装主板驱动时应尽量选择硬件自带的驱动程序。

2USB设备的原因

当关机变成重启的故障出现时,如果你的电脑上接有USB设备,请先将没有用的USB设备拔掉再试。倘若问题得以解决,则可以确信是USB设备的故障,可以将该设备关闭后连接到电脑再试一下。

一般来说,关闭电脑时最好切断或关闭USB设备的电源,或者是连接一个外置USB Hub,将USB设备接到USB Hub上,而不要直接连到主板的USB接口上,特别是主板的前置USB口。

5.6.2  关机出现蓝屏然后重新启动

问:我新购买的笔记本电脑,安装系统后,发现关机时总是突然间蓝屏,然后重新启动,无法关机。几乎每次关机都是同样的故障,只有个别时候可以正常关闭电脑。请问是什么原因?如何解决?

答:这种故障应该与操作系统、BIOS的电源设置、主板驱动程序有关系。

1)操作系统的原因。Windows XP有一个关机故障的Bug,如果你的电脑在关机过程中时常出现蓝屏,而且该故障是间断出现的,按下“Ctrl+Alt+Delete”键也毫无反应,那么可以肯定你的系统还没有打上相应的补丁。请到http://www.microsoft.com/china/WindowsXP/pro/downloads/servicepacks/sp1/default.asphttp://www.simble.com/book/index.htm下载SP1补丁包打上补丁,一般就可以了。

2BIOS的电源设置。确保BIOS中的ACPI高级电源管理已经打开,或者可以恢复BIOS默认值。恢复BIOS默认值的方法见本书第2章第4节的第5个问题。

3)主板驱动程序。这种情况一般是因为主板驱动程序没有正确安装而致使主板上的高级电源管理没有生效,或者安装了不是该硬件的驱动。因此关机时就会出现蓝屏故障。只要重新安装主板驱动程序就可以解决这个故障。但是笔者建议安装主板驱动后尽量立即重新启动系统,否则可能会出现各种各样的故障。

5.7  突然自动重启

电脑重启的原因一般是CPU无法负荷或者系统损坏造成的。而产生这两种情况的原因又多种多样,有些跟硬件设置有关,而有些则纯粹是病毒攻击的原因。本节将介绍修复系统的方法以及一种典型的电源负荷导致的重启故障。

5.7.1  系统文件损坏引起的自动重新启动

问:我的机器在开机时,有时会不断重新启动,无法进入桌面。可以进入安全模式,但是正常启动后问题依旧,不知如何解决?

答:当系统文件被破坏时,尤其是一些系统运行所必需的文件和新文件,比如WindowsKERNEL32.DLL文件,系统在启动时就会因此无法完成初始化而强迫重新启动。而如果该文件损坏并不严重,那么有时可以进入安全模式。出现这种情况时,在保留需要的资料的同时最好对系统进行重装或者进行修复。重新安装系统的具体步骤可以参考本书第16章第1节。

修复安装与重新安装相比,可以解决大部分系统故障,比如文件损坏、系统引导文件损坏、病毒替换文件造成的故障,而且修复安装的最大好处是修复后的系统保留了所有用户信息及配置文件,系统中原来已安装的软件及其配置也能完整保留。不过,Windows XP修复安装并非是万能的,对于硬件冲突、软件冲突、注册表损坏导致的系统崩溃问题,即使进行了修复安装,也很可能无法解决故障。

下面将介绍如何进行系统的修复安装。该修复不同于Windows下的SFC命令,而是彻底的修复系统中的所有文件和信息。修复安装是指利用Windows XP安装光盘,对已安装的系统进行自动修复,其基本原理是Windows XP的覆盖安装。因此修复过程与重新安装Windows XP也有很多相同之处。具体操作步骤如下。

1)修改启动设置

要从安装光盘启动,首先修改电脑的启动顺序,让电脑优先从光盘引导。如果你的主板使用Award BIOS,开机后可以在屏幕上看到“Press DEL to Enter SETUP”的字样,此时按DEL键即可进入BIOS设置程序。在主菜单中选择“Advanced BIOS Features”,如图5-40所示。

按回车键进入高级BIOS设置,选中“Boot Sequence”,将启动顺序设置为CDROM优先,如图5-41所示。设置完成后按“ESC”键返回到主菜单,再按“F10”键存盘退出。

    

5-40  进入Advanced BIOS Features界面           5-41  CDROM设置为优先启动

2)启动Windows XP的安装程序

重启电脑,将Windows XP的安装光盘放入CDROM驱动器中。安装程序首先将加载相应的文件系统、驱动程序以及需要的字体文件,这个过程无需用户干涉。等到安装程序显示欢迎界面时,按下回车键,开始安装Windows XP

此时在图5-42界面中如果按下“R”键将进入“恢复控制台”而并非修复安装。所以应键入回车键继续。

5-42  启动Windows XP安装程序

3)选择修复安装

按“F8”键接受“Windows XP许可协议”后,安装程序会显示出已安装到此电脑的Windows XP系统,如图5-43所示。由于本例中笔者仅安装了一个操作系统,因此这里只需要按下“R”键就可以开始修复安装。

若硬盘上安装了多个操作系统,则先按“↑”或“↓”光标键选择要进行修复安装的Windows XP系统,再按下“R”键进行修复。

4)开始进行修复安装

修复开始时,安装程序将先删除原有的系统文件,如图5-44所示:然后复制文件并进行安装。整个过程与全新安装Windows XP系统基本相同。惟一的区别是,在修复安装过程中用户无需输入用户名、使用者姓名等信息,因为修复安装会使用原系统中的信息。

       

5-43  已安装的操作系统                       5-44  复制文件并安装

5)完成安装

在系统安装过程中,有时系统会提示输入安装序列号,按提示操作即可。如果读者在此过程中有不确定的操作,请参考本书第16章第1节。

等安装完成后,重新启动电脑,修复过程也就完成了。进入修复后的系统,用户可以发现,不仅原来安装的软件全部得以保留,甚至用户以前所做的系统配置也仍然生效,如桌面设置、用户文档、网络配置等。

由于修复安装是先删除系统文件再安装新文件,因此修复后的系统版本号与安装光盘中的版本号一致。同时,Windows自带的某些系统组件也将恢复到原来的版本,如Internet ExplorerWindows Media Playe等,当然也需要重新激活Windows XP

5.7.2  进行DVD刻录时,电脑频繁重启

问:我的机器新增了一个DVD刻录机,但是在进行刻录时,电脑会很频繁地重新启动,导致我刻坏了很多光盘。我使用的刻录软件是NERO,刻录数据也不多,不知道为什么会出现这样的情况?如何解决?

答:这种情况是比较常见的一种因为电源功率不足所引起的故障。特别是添加了新的设备后,此问题就更容易出现。

DVD刻录机耗电量较大,加之其工作时,CPU、硬盘、风扇、刻录机都在全负荷工作,而此时如果瞬时电源功率不足而引起电源保护性停止输出。当电源停止输出后,负载减轻,电源再次启动。而此恢复时间很短,就相当于电脑断电后又重新接电,所以我们看到的表现就是主机自动重启。

另外,还有一种情况是主机开关电源性能差,虽然电压是稳定的也在正常允许范围之内,但因为其输出电源中谐波含量过大,也会导致主机经常性的死机或重启。

无论哪种情况,解决这种故障的方法只有更换电源或者减少硬盘和驱动器的使用。