这就是关机功能失效或不正常的故障。该如何来解决这类故障呢?
一、关机过程及故障原因
Windows的关机程序在关机过程中将执行下述各项功能:完成所有磁盘写 *** 作,清除磁盘缓存,执行关闭窗口程序,关闭所有当前运行的程序,将所有保护模式的驱动程序转换成实模式。
引起Windows系统出现关机故障的主要原因有:选择退出Windows时的声音文件损坏;不正确配置或损坏硬件;BIOS的设置不兼容;在BIOS中的“高级电源管理”或“高级配置和电源接口”的设置不适当;没有在实模式下为视频卡分配一个IRQ;某一个程序或TSR程序可能没有正确关闭;加载了一个不兼容的、损坏的或冲突的设备驱动程序等等。
二、故障分析与解决
1退出Windows时的声音文件损坏
首先,你可确定“退出Windows”声音文件是否已毁坏——单击“开始”→“设置”→“控制面板”,然后双击“声音”。在“事件”框中,单击“退出Windows”。在“名称”中,单击“(无)”,然后单击“确定”,接着关闭计算机。如果Windows正常关闭,则问题是由退出声音文件所引起的,要解决这一问题,请选择下列某项 *** 作:从备份中恢复声音文件;重新安装提供声音文件的程序;将Windows配置为不播放“退出Windows”的声音文件。
2快速关机不正常
而快速关机是Windows 98中的新增功能,可以大大减少关机时间。但是,该功能与某些硬件不兼容,如果计算机中安装了这些硬件,可能会导致计算机停止响应。你可禁用快速关机,先单击“开始”→“运行”,在“打开”框中键入“Msconfig”,然后单击“确定”(见图1)。单击“高级”→“禁用快速关机”,单击“确定”,再次单击“确定”。系统提示重新启动计算机,可重新启动。如果计算机能正常关机,则快速关机功能可能与计算机上所安装的一个或多个硬件设备不兼容。
3注意“高级电源管理”
计算机上的“高级电源管理(APM)”功能也可引起关机死机或黑屏问题。而要确定APM是否会引起关机问题,可单击“开始”→“设置”→“控制面板”,然后双击“系统”。在“设备管理器”选项卡上,双击“系统设备”。双击设备列表中的“高级电源管理”,单击“设置”选项卡,然后单击以清除“启用电源管理”复选框。连续单击“确定”,直到返回“控制面板”。重启动计算机。关闭计算机,如果计算机正常关机,则问题的原因可能在于APM。
4启动关机故障
大家在使用电脑时,还会经常遇到在Windows刚刚启动的时侯就显示“你可以安全地关闭计算机了”,或者启动时马上关机或关机时重新启动等故障。这类故障的原因一般来说是由于Wininitexe或Vmm32vxd文件的损坏所造成的。解决办法是重新从Windows安装程序压缩包中调取这两个文件。进入Windows\\system子目录下,将Vmm32vxd改名为Vmm32XXX进行备份,然后再单击“开始”→“程序”→“附件”→“系统工具”→“系统信息”。单击菜单栏中的“工具”,然后选择“系统文件检查器”,单击“从安装盘提取一个文件”(见图2),然后在“要提取的文件”框中输入“Wininitexe”或“Vmm32vxd”。单击“开始”,然后按照屏幕上的提示进行 *** 作,以便从Windows CD-ROM或安装盘将文件提取到C:\\Windows\\System文件夹,然后重复此步骤,以替换文件Wininitexe或Vmm32vxd。
5Bootlogtxt文件出错
此外,在Bootlogtxt文件中存在定位问题也可引起关机黑屏故障。你可先使用文本编辑器,如“记事本”,检查Bootlogtxt文件中的“Terminate=”条目。这些条目位于文件的结尾,可为问题的起因提供一定的线索。对每一个“Terminate=”条目,查找所匹配的“EndTerminate=”条目。
Terminate=Query Drivers表明内存管理程序有问题;
Terminate=Unload表明Network与Configsys中的实模式或网络驱动程序存在冲突;
Terminate=Reset Display表明可能需要更新视频驱动程序;
Terminate=Rit表明声卡或鼠标驱动程序存在问题;
Terminate=Win32表明与32位程序有关的问题阻塞了线程。
如果Bootlogtxt文件的最后一行为“EndTerminate=KERNEL”,Windows 98就可成功关闭。
6Configsys或Autoexecbat有问题
此外,你可检查Configsys文件或Autoexecbat文件中是否存在冲突?先确定Configsys文件或Autoexecbat文件中是否存在冲突,可单击“开始”,然后单击“运行”。在“打开”框中,键入“Msconfig”,然后单击“确定”。单击“诊断启动”,然后“确定”。系统提示重新启动计算机时,请单击“确定”。如果计算机的启动或关闭不正确,请确定问题是由Configsys或Autoexecbat文件的哪一行引起的。
要确定引起问题的行,可重新启动计算机。计算机重新启动时,请按住Ctrl键。从“Startup”菜单中选择“Safe Mode安全模式”。启动后单击“开始”,然后再击“运行”。在“打开”框中,键入“Msconfig”,然后单击“确定”。单击以清除Configsys和Autoexecbat选项卡中不含Windows图标行的复选框。使用此Configsys文件,单击以启用某行。单击“确定”。当系统提示重新启动计算机时,单击“确定”。如果计算机的启动和关闭都很正常,请启用另一行,并重复上述步骤的 *** 作,以逐步启用Configsys文件和Autoexecbat文件中的行,直到发现问题为止。
7内部系统问题
此外,可确定是否存在内部系统问题。单击“开始”→“运行”。在“打开”框中,键入“Msconfig”,然后单击“确定”。在“常规”选项卡中单击“高级”。单击以清除“高级疑难解答设置”中的下列复选框,然后单击“确定”:禁用系统ROM中断点;禁用虚拟HD IRQ;EMM不包含A000-FFFF。系统提示重新启动计算机时,单击“确定”。如果计算机正常启动,可重复以上步骤,但在步骤中“单击以清除‘高级疑难解答设置’中的下列复选框”时单击以选中某复选框。重复此过程,每次选中其它某复选框,直到发现计算机无法正常关闭为止。一旦发现计算机无法重新启动或关闭,可再次重复以上步骤单击以清除刚才选中的复选框即可。
8检查CMOS设置
CMOS设置不正确一样也会引起电脑关机问题,大家在电脑启动时可按“Del”键进入CMOS设置页面,重点检查CPU外频、电源管理、病毒检测、IRQ中断开闭、磁盘启动顺序等选项设置是否正确。具体设置方法你可参看你的主板说明书,其上面有很详细的设置说明。如果你对其设置实在是不太懂,建议你可直接在CMOS载入或取下CMOS电池、短接跳线,选用厂家出厂默认设置即可。
9硬件问题
此外,一些BIOS本身的问题或硬件系统本身的问题也会引起不能关机故障。当你发现你安装了新的硬件在关机时出现系统挂起的情况,如显示器黑屏,键盘鼠标无响应等,那么很可能是为新硬件所配置的驱动程序有兼容性的问题。要解决这种第三方的硬件不兼容问题,一般都是到硬件厂家网站上查找解决方案,找到该设备的最新驱动程序并下载安装到你的机器系统中,一般即可解决该问题。
--
解决不能正常关机的“难题”
曾有一些朋友问笔者:为什么我的电脑不能自动关机?笔者不得不为他们解决这类问题,又顺便把经验“上升到理论”。相信这篇文章也能帮助你解决点问题。
对于ATX电源的电脑,Windows 98提供了电脑的自动关机功能。但在很多情况下,我们的电脑却并不能顺利地正常关机,有时会在关机的过程中死机或失去响应,使我们必须重新启动电脑或强制性关掉电脑电源。有没有办法可以让电脑关机不再失败呢?让我们一起来分析一下原因。
一、关机有音乐
很多朋友都喜欢在“控制面板”的声音设置中设置一段关机音乐,为冰冷的电脑增加一些生气。如果关机的音乐文件因为某种原因被损坏而不能正常播放,那么在执行关机程序时自然会失败了。如果你的电脑不能正常关机,而你恰恰又设置了关机音乐,不妨先把关机音乐设置为“无”(如图1),然后再试试。
二、驱动不兼容
硬件驱动程序之间的不兼容,也会造成电脑不能正常关机。在这里有一个窍门,每次Windows 98关机失败后,都会在C盘根目录下面的Bootlogtxt文件中作出记录,找出其中的“Terminate=”和“EndTerminate=”,在这里记录了关机失败的原因。
还是拿我自己现在用的这台电脑来说吧,最开始时我用一块小影霸TNT2 M64的显卡,起初都很正常,后来我发现只要运行了3D游戏后,不管时间长短,退出游戏后如果马上关机,肯定失败,非要重新启动一次后才能正常关机。于是我在关机失败后查看了Bootlogtxt文件,在文件的最后,我发现了这样几条记录:
Terminate=Reset Display
EndTerminate=Reset Display
EndTerminate=User
从记录上看,好像关机失败和显卡有一些关系,于是我安装了驱动光盘上的TNT2新版的驱动程序,故障依然存在。又安装了最新的DirectX 81,仍然没有解决问题。最后在一次运行DirectX诊断工具“DxDiag”(该程序在C:\\Program Files\\DirectX\\Setup目录中)后,在“显示”页面中提示“文件Nvdispdrv未经数字签名……”看来我之前所安装的TNT2驱动程序没有通过微软认证,于是我又上网下载了TNT2的NVIDIA_WHQL(即通过微软认证)最新驱动2832 WHQL版For Windows 9X,安装之后重新启动,再次运行“DxDiag”程序,在“显示”页面中提示“没有找到任何问题”,此时运行各种3D游戏后均可顺利关机。
经过多次试验,发现一般关机失败,只要不是硬件本身的故障,都可以检查Bootlogtxt文件查找原因。下面所列出的记录都可能造成电脑关机失败,大家可根据自己电脑的Bootlogtxt所显示的情况找出原因:
Terminate=Query Drivers 内存管理程序有问题
Terminate=Unload Network Network与Configsys中的实模式网络驱动程序冲突
Terminate=Reset Display 显卡设置或驱动程序有问题
Terminate=RIT 声卡或某些旧的鼠标驱动程序存在与计时器有关的问题
Terminate=Win32 某些32位程序锁定了线程
大家可以根据自己电脑的情况,通过对比以上几点原因,查找并解决电脑的关机故障。
三、软件难退出
有时候关机失败并不是电脑系统本身的原因,而是因为关机时某些程序无法正常退出。很多朋友在关机之前并不将所有正在运行的程序或软件全部关闭,而是让Windows关机时自动关闭它们。的确,大部分的软件或程序都可在电脑执行关机程序时自动关闭,但也有少数无法自动退出,所以当电脑关机时我们有必要检查一下,还有什么软件或程序正在运行。
我发现电脑经常无法正常关机,禁用了“快速关机”还是不行。后来才发现当电脑上运行了某个软件(由于这个软件是常驻内存的,运行后就自动出现在系统托盘中),如果我在关闭电脑时没有将它从系统托盘中退出,那肯定会出现无法关机的现象。而在关机之前自己动手把正在运行的软件关闭,就可以正常关机了。所以关机时最好首先退出各种正在执行的程序,再执行关机命令。
四、欲速则不达
Windows 98的关机程序本身就存在一个Bug,这就是“快速关机”,在很多时候就是它让我们无法正常关机,正所谓“欲速则不达”。
解决方法很简单,就是“禁用快速关机”。点击“开始”→“运行”,输入“msconfig”后点击“确定”。出现“系统配置实用程序”窗口,点击“常规”页面,再点击“高级”选项,在此时出现的“高级疑难解答设置”窗口中,将“禁用快速关机”选择前面打上勾(如图2),这样就完成了整个 *** 作。
版本 2
支持库 shellEx
程序集 窗口程序集1
程序集变量 End, 整数型
程序集变量 Home, 整数型
子程序 __启动窗口_创建完毕
Home = 注册热键 (取窗口句柄 (), 标签1取窗口句柄 (), 0, #Home键)
End = 注册热键 (取窗口句柄 (), 标签1取窗口句柄 (), 0, #End键)
子程序 __启动窗口_托盘事件
参数 *** 作类型, 整数型
如果真 ( *** 作类型 = #单击左键)
_启动窗口可视 = 真
_启动窗口位置 = 0
置托盘图标 (, )
如果真结束
子程序 _按钮13_被单击
_启动窗口可视 = 取反 (_启动窗口可视)
_启动窗口位置 = 选择 (_启动窗口可视, 0, 2)
置托盘图标 (#托盘图标, “双击一下呼出”)
子程序 _标签1_反馈事件, 整数型
参数 参数一, 整数型
参数 参数二, 整数型
如果真 (参数一 = Home)
_按钮13_被单击 ()
如果真结束
用这个吧,比较简洁、、、_启动窗口在任务条中显示 = 真 这句是多余的、、、
功能:窗口最小化后或者点击“hide”按钮将窗口隐藏到托盘。
通常最小化的窗口会在任务栏上显示一个按钮。当用户按一下这个按钮,窗口就还原了。这是一个被大多数桌面环境,比如Windows,KDE,GNOME所采用的普遍设计。不过,因为任务栏通常只是桌面边上一小行,容纳不了很多按钮,用户通常希望把那些不常用的程序隐藏起来,只在通知栏显示一个小图标,要使用的时候再点击那个小图标恢复窗口。这种作法最典型的例子是QQ和Winamp。
最基本的思路是拦截窗口的最小化事件changeEvent(),通过重写changeEvent()即可。
“hide”按钮的方式,是通过信号--槽来实现。
--------------------------------------------------------------------
void TrayMenu::createActions()
{
//创建托盘项
action_show = new QAction(this);
action_quit = new QAction(this);
action_login_home = new QAction(this);
action_help = new QAction(this);
action_about = new QAction(this);
action_check_update = new QAction(this);
action_setting = new QAction(this);
//设置托盘项图标
action_show->setIcon(QIcon(":/icon/open"));
action_login_home->setIcon(QIcon(":/icon/home"));
action_help->setIcon(QIcon(":/icon/help"));
action_about->setIcon(QIcon(":/icon/about"));
action_check_update->setIcon(QIcon(":/icon/update"));
action_setting->setIcon(QIcon(":/icon/set"));
action_quit->setIcon(QIcon(":/icon/quit"));
//加载和提示
QIcon icon(":/images/sysTraypng");
systemTray = new QSystemTrayIcon(this);
systemTray->setIcon(icon);
systemTray->setToolTip("Hello, this is system tray!");
注意:这里特别提醒,如果你的应用程序要移植到别的机器上,而且这个机器没有装Qt,QIcon的格式最好用png,而不要用ico等格式,否则托盘图标不能显示,会很麻烦。
//设置托盘想文本
action_show->setText(QString("显示"));
action_quit->setText(QString("退出"));
action_login_home->setText(QString("登录网页"));
action_help->setText(QString("帮助"));
action_about->setText(QString("关于"));
action_check_update->setText(QString("检查更新"));
action_setting->setText(QString("设置"));
//添加菜单项
this->addAction(action_show);
this->addAction(action_setting);
this->addAction(action_login_home);
this->addSeparator();
this->addAction(action_help);
this->addAction(action_about);
this->addAction(action_check_update);
this->addSeparator();
this->addAction(action_quit);
action_setting->setVisible(false);
//设置信号连接(这里仅列举连接显示窗口的信号)
QObject::connect(action_show, SIGNAL(triggered(bool)), this, SIGNAL(showWidget()));
}
LoginDialog::LoginDialog(QWidget parent) : QDialog(parent)
{
QSystemTrayIcon system_tray = new QSystemTrayIcon();
//放在托盘提示信息、托盘图标
system_tray ->setToolTip(QString("我就是托盘"));
system_tray ->setIcon(QIcon(":/icon/login"));
TrayMenu tray_menu = new TrayMenu();
system_tray->setContextMenu(tray_menu);
//点击托盘执行的事件
connect(system_tray , SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconIsActived(QSystemTrayIcon::ActivationReason)));
connect(tray_menu, SIGNAL(showWidget()), this, SLOT(showNormal()));
//显示托盘
system_tray->show();
//托盘显示提示信息
system_tray->showMessage(QString("托盘标题"), QString("托盘显示内容"));
}
void LoginDialog::iconIsActived(QSystemTrayIcon::ActivationReason reason)
{
switch(reason)
{
//点击托盘显示窗口
case QSystemTrayIcon::Trigger:
{
showNormal();
break;
}
//双击托盘显示窗口
case QSystemTrayIcon::DoubleClick:
{
showNormal();
break;
}
default:
break;
}
}
OK,这样我们的托盘功能就Over了!
=============================================================================
另://关闭到托盘
void Widget::closeEvent(QCloseEvent e)
{
e->ignore();
this->hide();
}
//最小化到托盘
void Widget::changeEvent(QEvent e)
{
if((e->type()==QEvent::WindowStateChange)&&this->isMinimized())
{
QTimer::singleShot(100, this, SLOT(close()));
}
}
或者(me)
//点击窗口的“最小化"按钮会调用此函数(系统默认)---已实现
void maxLinksGuard::changeEvent(QEvent event )
{
if(event->WindowStateChange)
{
switch(this->windowState())
{
//点击“最小化”按钮
case Qt::WindowMinimized:
this->hide();
this->setWindowFlags(Qt::Tool);//隐藏任务栏上图标
systemTray->show();//显示托盘
systemTray->showMessage(windowTitle(),"Here is system,double click will show!");//提示
event->ignore();
break;
default:
break;
}
}
}
//托盘图标事件--------已实现
void maxLinksGuard::iconActivated(QSystemTrayIcon::ActivationReason reason)
{
switch (reason)
{
//单击托盘
case QSystemTrayIcon::Trigger:
{
if(!this->isVisible())
{
this->setWindowFlags(Qt::Window); //显示之前恢复
showNormal();
}
else
{
hide();
}
break;
}
//双击托盘---貌似不起作用
case QSystemTrayIcon::DoubleClick:
{
if(!this->isVisible())
{
this->setWindowFlags(Qt::Window); //显示之前恢复
showNormal();
}
else
{
hide();
}
break;
}
case QSystemTrayIcon::MiddleClick:
{
break;
}
default: ;
}
}
//点击窗口的“关闭”按钮触发closeEvent事件(关闭应用程序)----已实现
void maxLinksGuard::closeEvent(QCloseEvent event)
{
if (this->isVisible())
{
QMessageBox::critical(NULL,QObject::tr("Prompt:"),QObject::tr("Are you sure you want to kill/stop the MaxLinksGuard"));
event->ignore();
}
else
{
event->accept();
}
}
==========================================================
MagicHide!1.能够快速隐藏任意应用程序窗口。您可以通过设定热键,在任意时候,快速隐藏任意窗口。您可以隐藏/显示特定的一个或一组窗口。
2.能够隐藏其它程序的托盘图标。真正做到实时刷新,实时隐藏,开机自动隐藏。您不但可以隐藏Win2000/XP/2003以上系统中的托盘图标,更可以隐藏Win98/95下的托盘图标。同样支持热键隐藏;可以给托盘图标发送各种鼠标消息,比如d出右键托盘菜单等。
3
不但可以修改窗口显示的图标和文字,还可以修改其它程序的托盘图标和提示文字。例如可以把聊天窗口伪装成Word,在Windows的任务工具栏上显示的是Word,而实际的窗口却是聊天窗口。
4.超强的进程隐藏功能和驱动器隐藏功能。
5
功能强大的“魔法桌面”功能,这样您可以自定多达9个工作桌面,按热键可以瞬间切换。
6
超强的热键项目设置管理功能。热键分为临时热键和持久热键两种,临时热键可以随时绑定到窗口或托盘图标,持久热键可以实现隐藏/显示特定条件的窗口或托盘图标,或用来快速结束指定进程。
7
整合进程管理器功能。可以设置任一进程优先级,可以强行结束进程,可以显示进程的详细信息,可以强行结束进程的DLL模块。
8.MagicHide除了提供了热键隐藏窗口以外,还提供了鼠标隐藏窗口的功能,同时按下鼠标的左右键即可隐藏当前窗口。
9
难得一见的托盘图标排序功能。您可以通过她按自己的意愿调整托盘图标的排列顺序。
10.具有锁定屏幕功能,在您离开时,可以保护您的电脑不让他人 *** 作。
11.MagicHide提供了密码保护的功能,可以使用密码禁止他人使用MagicHide。
12
可以设置隐藏窗口或托盘图标时使系统静音。
13
在Win2000/WinXp/Win2003等系统上可以设定任意窗口的透明度,可以设置窗口是否被穿透。
14
可以快速关闭所有IE窗口。
15
MagicHide可以把任意窗口变成最前端显示,加强了对窗口的控制。
16
内部整合终极窗口属性修改器,比MS
SPY++更强的窗口属性修改工具。您可以通过她查看、修改任意窗口或控制的属性;隐藏任意局部窗口或控制。
17MagicHide其它的一些人性化的功能等待您的悉心发掘。
PowerMenu 是一个 Windows 的辅助软件,功能不是非常多,可是却非常的实用!而体积也仅100多KB而已~,就是将任何程序最小化到托盘中,这样,在工作时打开一堆软件就不会把任务栏撑满了。。呵呵~小小的提高了工作效率~
它的功能包括:
1、设置任何Windows窗口的半透明度
2、使任何Windows窗口置顶
3、设置进程的优先级别
4、最小化任何Windows窗口到右下角托盘中
使用方法非常的简单,运行PowerMenu后,在任务栏右键就会出现额外菜单,PowerMenu的所有功能都在这里了~虽然它是英文版,但就这么几个简单的e文应该难不到各位吧。。。所以我也不考虑汉化它了,就给大家说说每个单词的意思就可以了~
第一个Priority是指设置进程的优先级,其实这个功能一般是用不到的~呵呵。。。它的子菜单是优先级别而已,RealTime(实时)是最高,Lowest是最低,Normal是正常,一般无特殊需要还是Normal好了~
第二个TranSparency是半透明度,按自己的喜欢设置吧~
第三个AlwaysOnTop是指将窗口“总是置顶”,不怕被别的程序挡住这个窗口了~
最后一个是Minimize To Tray就是将窗口最小化到右下角的托盘,也是我最喜欢的一个功能哟~呵呵~
其实类似PowerMenu的软件还有几个,如 TrayIt ,AlltoTray等…
如果你已经做到了“点击鼠标或菜单之后,才能最小化到托盘”,那么就简单了。可以在I初始化的时候对对话框发送最小化消息(这样会闪烁一下);或者在程序入口,调整dlgDoModal为ShowWindow(SW_HIDE);//参考非模态对话框建立
以上就是关于把C盘硬件删除了一些后,关机电脑屏幕不能显示程序,无窗口显示,这全部的内容,包括:把C盘硬件删除了一些后,关机电脑屏幕不能显示程序,无窗口显示,这、我用易语言做了个托盘程序,用热键隐藏了,怎么用热键怎么显示出来,看下面、Qt中如何使窗口隐藏/最小化到托盘等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)