全面剖析系统关机故障_操作系统

内容摘要
我的PC电源开关“间歇性休克”了!原因是系统无法正常关机,所以每次用完电脑都必须长按电源开关关机,久而久之开关触点不是十分灵敏了。
文章正文
    我的PC电源开关“间歇性休克”了!原因是系统无法正常关机,所以每次用完电脑都必须长按电源开关关机,久而久之开关触点不是十分灵敏了。除此以外,因为经常在硬盘还进行读写操作的时候强制关机,我的20GB硬盘也报销了。可恶的系统关机故障,究竟如何才能解决?

  关机缓慢故障

  引起关机慢的故障原因较多,如关闭系统功能所对应的声音文件损坏、快速关机功能存在冲突、电源管理功能存在冲突等等。

  解决的办法:

  1. 利用控制面板中的声音选项取消关闭系统所对应的声音文件(图1)。重启后看是否是它的问题。

  2. 打开系统属性设备框,在设备管理器选项卡中展开系统设备分支,双击高级电源管理支持项,打开高级电源管理支持属性设置框,复选常规标签中的“在此硬件配置文件中禁用选项”,关闭高级电源管理功能。重启后故障一般都能得到解决。

  “应用程序初始化失败”故障

  关机的时候出现“因为窗口已关闭,应用程序初始化失败”这样的对话框,而且系统启动程序的速度也明显降低,其原因是:因为Windows已经开始了关机操作,但是某一个后台程序要创建一个窗口,由于资源已经被Windows释放掉,窗口创建失败。建议在关机前关掉所有第三方程序,如果还存在这个问题,可以先使用最新版本的杀毒软件做一个全面的扫描,看看是不是有病毒存在。另一个原因是系统某些必须的服务被关闭。可以在“事件察看器”中查找是哪个服务非法关闭了:点击“开始→运行”,输入“eventvwr.msc”,察看系统日志,知道是哪个服务的话,试着运行它,看看他的依赖服务是不是也关闭了,也试着运行他(图2)。

  还是不行的话,看下面:找个“干净”的系统,把C:\Winnt\System32\Config(不同的系统版本所在文件夹不相同)下的文件System.dat复制过来替换原先的同名文件(不过得在DOS下完成)。重装系统也可以,注意只有完全安装才能解决问题,不能升级安装。

    关机出现“UPEngine.EXE-DLL初始化失败”

  WinXP关机时出现一个窗口,标题是“UPEngine.EXE-DLL初始化失败”,窗口内容为:窗口已关闭,应用程序初始化失败。之后无论是否按确定键都无法正常关机。经过检查,发现UPEngine.exe是紫光拼音输入法的核心引擎文件。为了避免系统的资源浪费,紫光拼音输入法采用的是输入法核心和输入法接口分离的方式。核心引擎仅仅在系统中留有备份,如果一段时间没有打开输入法(大概30秒左右),输入法引擎就会自动退出。这就是为什么在查看系统进程时,有时可以看到UPEngine.exe,有时却看不到。如果在使用完紫光拼音输入法之后马上关机,此时输入法引擎还没有正常关闭,就会出现上面的故障。除此之外,一些应用程序在运行中的错误也可能导致输入法引擎无法正常关闭。如果是这种情况,系统就只能强行关闭输入法,这样就有可能使已经打开的用户词库被损坏,但是系统不会因此受到什么影响。

  解决方法:如果安装了紫光拼音输入法,试试删掉重装吧。如果没装,那可能是其他程序被手动删除,不是正常卸载。点击“开始→运行”,输入msconfig回车键,出现系统配置实用程序,点启动,会出现启动项目了,建议取消全部勾选项,重启之后一般能解决问题。

  Office XP也惹祸

  Office XP当中的Ctfmon.exe一直是一个颇有争议的程序。Ctfmon.exe是微软的文本服务文件,只要用户安装了Office XP并且安装了“可选用户输入方法组件”,这个文件就会自动调用它,为语音识别、手写识别、键盘以及其他用户输入技术提供文字输入支持。即使我们没有启动Office XP,Ctfmon.exe照样在后台运行。往往就是它造成了关机故障,不妨将其卸载试试。依次点击“开始→设置→控制面板→添加/删除程序”,在目前已安装的程序中选中“Microsoft Office XP Professionain With FrontPage”,点击“更改”按钮,在“维护模式选项”对话框中选择“添加或删除功能”选项,点击“下一步”,弹出“为所有Office应用程序和工具选择安装选项”对话框,展开“Office共享功能”选项,选中“中文可选用户输入方法”选项,在弹出菜单中选择“不安装”(图3),最后点“更新”按钮即可。

 

    ADSL导致的系统关机故障

  笔者使用WinXP家庭版系统,将桌面上的ADSL快捷方式拖进了“开始”菜单的“启动”文件夹里。这样每次开机都会自动连接网络,但是关机的时候麻烦就来了:只要没有断开网络,关机是没有反应的;这时双击其他应用程序的图标会出现“因窗口已关闭,无法执行此操作”的错误提示。非得在右下角的系统托盘区的网络图标上右击然后点“断开连接”,才能触发关机动作。

  解决方法:在关机的时候,有时会弹出讨厌的对话框,提醒某个程序仍在运行,是否结束任务。其实完全可以通过修改注册表让Windows自动结束这些仍在运行的程序。在注册表中打开HKEY_CURRENT_USER\ControlPanel\Desktop目录,把里面的字符串值AugoEndTasks键值改为1。注意:可能会找不到AutoEndTasks键值,如果是这样的话,自己建一个串值并把它改为这个名字,键值设为1就可以了。

  电脑需要手动关机怎么办?

  在Win98及更高版本的系统中都支持自动关机,即不通过电源的物理开关实现关机。自动关机是通过操作系统支持的ACPI(高级系统配置和电源管理)技术来实现的。因此,为了保证自动关机的实现,在BIOS设置中,必须把ACPIfnuction设置为Enabled。同时必须启用APM(高级电源管理)功能:不同的主板的BIOS设置不尽相同,可以参看主板说明书或者自行摸索。

  自动关机是一个比较复杂的过程,简言之,需要驱动程序和其他的当前执行程序子系统(如即插即用管理器、电源管理器、执行程序、IO控制器、配置管理器、内存管理器)停止执行,另外还要检查当前系统中各种外部设备的状态以及尚未关闭的应用程序的状态,处理各个数据缓冲器中的数据,如果在上述工作中发生错误就不能正常关机。因此一般来说在关机之前应该使各种外设停止工作,关闭所有的应用程序后再行关机。

  一般情况下,APM没有开启可能造成关机却不能自动切断电源。可试试下面的办法:选择“设置→控制面板→电源选项→高级电源管理”,如果机器支持高级电源管理,则选中“启用高级电源管理支持”(图4),然后在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon中设置PowerdownAfterShutdown键值为1。

    以命令方式关机

  Win98/me系统环境下,运行“rundll32 user.exe,exitwindows”可以关机。如果采用其他系统,如Windows NT/2000系统,实现语句如下:%Windir%\RunDLL32.exe %Windir%\System\Shell32.dll,SHExitWindowsEx 8上面一行实现的是“关机并关闭电源”,若将最后的“8”更改为“1”、“2”、“4”则可以分别实现注销、重新启动、强制关闭电源等功能。

  对于Windows XP系统,命令格式:

  shutdown [-i | -l | -s | -r | -a] [-f] [-m \\computername] [-t xx] [ -c "comment"] [-d up:xx:yy]

  参数说明:

  没有参数 显示shutdownt的用法和格式的相关消息(与?相同)

  -i  显示GUI界面,必须是第一个选项

  -l注销系统(不能与选项-m一起使用,而且若其后面还带了[-t xx]时间参数的话,时间参数将不起作用,系统将会立即注销)

  -s关闭计算机

  -r关闭并重新启动计算机

  -a  放弃重新启动计算机

  -m \\computername 远程计算机关机/重启/放弃

  -t xx 设置关闭系统的时间为xx秒

  -c "comment"关闭窗口中的提示信息(最大为127个字符)

  -f强制关闭运行的应用程序而没有警告

  -d [p]:xx:yy关闭原因代码

 

  设置举例:

  在命令提示符下或桌面快捷方式的“目标”中输入以下信息:

  shutdown.exe -s -t 60 -c “系统将在一分钟内关闭,请退出所有程序并作好关机准备!”(图5)

  运行时将会出现一个时间为60秒的倒计时对话框,在对话框下方的“消息”栏中会出现“系统将在一分钟内关闭,请退出所有程序并作好关机准备!”这样的提示信息,时间一到将会关闭系统。

    自动关机失败小结

  在Windows系统中的确常常出现自动关机失败的情况,原因大概有下面的几种:

  1. 系统文件中自动程序有所缺陷:可以试试在“运行”中输入:rundll32 user.exe,exitwindows看看能否正常关机。如果在这个命令下可以正常关机,表示自动程序可能有某种缺陷,如果使用的是Windows98/me系统,请运行一下sfc程序,检查一下系统文件的完整性和修补文件。而运行rundll32 user.exe,exitwindows也不能正常关机,则可能是操作系统中某些程序有缺陷,处理办法仍是修补系统或重新安装系统。如果修补文件仍然不能解决问题,只能重新安装一下系统。

  2. 病毒和某些有缺陷的程序或者正在运行的系统任务有可能造成关机失败。请使用最新的杀毒软件对系统查杀。

  3. 外设和驱动程序兼容性不好,不能响应快速关机。首先卸载老的驱动,再请上网查找最新的驱动程序进行安装。

  4. 如果设置了在关闭Windows时使用声音文件,当该文件损坏,也能造成关机失败,请在控制面板中声音事件中选择“退出Windows”,把声音设为无。

  5. 在Windows 98自动关闭时将显示“现在可以安全地关闭计算机了”,这个内容是由Windows目录下的“logos.sys”文件完成的,如果这个文件损坏,也能造成不能关机,解决办法,恢复该文件(图6)。

  6. Windows XP不能自动关机,如果排除了上述各种原因后,有可能是其控制面板中的电源选项设置不正确,请检查电源选项的设置,保证ACPI和APM能够正常工作。也有的主板系统BIOS中的APM和Windows XP之间不兼容,因此不能自动关机。选择关机却变成重新启动系统,在这种情况下只能手动关机了。解决问题的办法是点击“开始→设置→控制面板→性能与维护→电源选项”,在弹出的窗口中,根据需要启用或取消“高级电源支持”即可。如果在故障发生时使用的是启用“高级电源支持”,就试着取消它。如果在故障发生时,使用的是取消“高级电源支持”就试着启用它,故障往往会迎刃而解。

  Windows XP默认情况下,当系统出现错误时会自动重新启动,这样当用户关机时,如果关机过程中系统出现错误就会重新启动计算机。将该功能关闭往往可以解决自动重启的故障。在桌面上右键点击“我的电脑”,在弹出的右键菜单中选择“属性”,弹出“系统属性”窗口,点选“高级”选项卡,点击“启动和故障恢复”栏目中的“设置”按钮,弹出“启动和故障恢复”窗口。在“系统失败”栏目中将“自动重新启动”选项前的对勾去掉,点“确定”按钮(图7)。

  如果原本可以正常关机,但是突然出现问题,而又排除上述故障原因后,可以尝试给CMOS电池放电,或重新安装操作系统来解决问题。

代码注释
[!--zhushi--]

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!