在很多情况下,电脑会莫名其妙自动关机、自动重启、频繁死机、频繁蓝屏。这种情况是电脑在使用过程中最最频繁出现的故障了。出现这种故障的原因主要有三个:
1、PCI设备、内存条等设备没有插稳或者松动;
2、硬件设备不兼容或者设备本身有质量问题;
3、硬盘有坏道或者有坏的扇区。如果硬件没有问题,那么电脑自动关机、自动重启、频繁死机、频繁蓝屏的原因95%以上属于这个原因。
解决故障的办法应该是“选软后硬”,即:
1、解决硬盘有坏道或者有坏扇区的问题,可用sfc命令和chkdsk命令来作软修复。方法是:点击“开始”——“运行”——在出现的窗口中输入命令字符,然后按窗口中的提示 *** 作即可。需要注意的是:有时会要求你重新启动电脑,在重启时同时修复。
2、检查PCI设备(如:显卡、声卡、网卡等)和内存条是否松动,最好是重新插拔一次,交检查金手指部分是否有氧化或者脱落
也可能是有木马病毒
嵌入你的电脑,使你的电脑遭受蓝屏危机,
可以进入安全模式下用360杀毒
用360系统急救箱它对各类流行的顽固木马查杀效果极佳,能够强力清除木马和可疑程序,并修复被感染的系统文件,抑制木马再生,修复系统功能!
自动重启是什么原因和对应的解决办法
1 用户在不知情的情况下运行了黑客设计好的木马陷阱,一旦进入网民将会成为黑客的傀儡,任意 *** 被作。
2 系统程序遭到破坏,由于没有完美修复也成为电脑自动重启的原因。
( 这两种情况建议使用金山毒霸的全盘查杀功能,给电脑清理病毒,然后使用金山毒霸的系统修复功能,修复电脑系统异常,保证电脑正常使
用)
3 不兼容问题,由于程序存在不兼容情况也会出现电脑自动重启情况。 (卸载可疑程序)
4 硬件问题,内存、电源、硬盘等硬件出现问题都会出现电脑自动重启问题。(只有更换硬件)
如果还不能解决你的问题,建议去"天下围攻病毒木马"的公益活动网站(百度一下),那里有专家在线为你解决电脑领域相关问题。
void ReStart(BOOL bNormal)
{
PROCESS_INFORMATION info;
STARTUPINFO startup;
char szPath[128];
char szCmdLine;
GetModuleFileName(AfxGetApp()-> m_hInstance, szPath, sizeof(szPath));
szCmdLine = GetCommandLine();
GetStartupInfo(&startup);
BOOL bSucc = CreateProcess(szPath, szCmdLine, NULL, NULL,
FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &startup, &info);
if(bNormal && bSucc)
{
CWnd pWnd = AfxGetMainWnd();
if(pWnd != NULL)
{
pWnd-> PostMessage(WM_CLOSE, 0, 0);
}
else
ExitProcess(-1);
}
else
ExitProcess(-1);
}
VC实现程序重新启动
在很多情况下,我们需要将当前运行的程序重新运行;此时我们就必须在程序关闭后立即重新运行程序,形成新的进程;
实例代码:
1、重启按钮事件中添加代码:
g_bIsRunAgain=true;//控制是否重新运行的变量
this->SendMessage(WM_CLOSE);
在MESSAGE_MAP中药添加 ON_WM_CLOSE
2、在OnClose()消息处理中加入代码:
if(g_bIsRunAgain)
{
char pBuf[MAX_PATH]; //存放路径的变量
GetCurrentDirectory(MAX_PATH,pBuf); //获取程序的当前目录
strcat(pBuf,"\");
strcat(pBuf,AfxGetApp()->m_pszExeName);
strcat(pBuf,"exe");
CString strPath= (CString) pBuf;
STARTUPINFO StartInfo;
PROCESS_INFORMATION procStruct;
memset(&StartInfo, 0, sizeof(STARTUPINFO));
StartInfocb = sizeof(STARTUPINFO);
::CreateProcess(
(LPCTSTR) strPath,
NULL,
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&StartInfo,
&procStruct);
}
CDialog::OnClose();
通过查阅资料实现了对话框程序重新启动的功能,流程如下:
1ShowWindow(SW_HIDE);//隐藏本对话框
2WinExec(strPath, SW_SHOW);//启动strPath路径下的执行文件
3 OnOK();//退出当前执行对话框程序
另外在获取strPath是使用函数:GetModuleFileName(NULL,buf,sizeof(buf))获取当前程序的执行文件路径。
附源代码:
1void CF_RockClientDlg::OnBtnRestart()
2{
3 // TODO: Add your control notification handler code here
4 char buf[256];
5 ::GetModuleFileName(NULL,buf,sizeof(buf));
6 CString strPath = buf;
7 ShowWindow(SW_HIDE);//隐藏本对话框
8 WinExec(strPath, SW_SHOW);//启动strPath路径下的执行文件
9 OnOK();//退出当前执行对话框程序
10}
vc 实现软件重启
一般要在一个事件里产生软件的自动重启 。
比如,我在一个对话框工程的子对话框中有一个单击按钮“确定”后d出一个是否重开软件的功能。
子对话框中:
if(MessageBox("更改了设置,需重启软件生效","Notice",MB_YESNO)==IDYES)
{
// WM_ONSETRESTART 消息是一个自定义的消息
//实现一个布尔变量的开关,以此评估 响应 wm_close 消息是不是由这个按钮触发(否则软件永远重启)
AfxGetMainWnd()->SendMessage(WM_ONSETRESTART);
AfxGetMainWnd()->SendMessage(WM_CLOSE);
}
在主对话框中的 OnClose 中:
void CTransFileDlg::OnClose()
{
char pBuf[MAX_PATH];
//获取应用程序完全路径,比 GetCurrentDirectory 好用多了
GetModuleFileName(NULL,pBuf,MAX_PATH);
STARTUPINFO startupinfo;
PROCESS_INFORMATION proc_info;
memset(&startupinfo,0,sizeof(STARTUPINFO));
startupinfocb=sizeof(STARTUPINFO);
// 最重要的地方
if(m_bSetRestart)
::CreateProcess(pBuf,NULL,NULL,NULL,FALSE,
NORMAL_PRIORITY_CLASS,NULL,NULL,&startupinfo,&proc_info);
CDialog::OnClose();
}
1、电脑散热不好很容易引起电脑自动重启,因为cpu有自我保护功能,当热量威胁到电脑硬件时,就关机自动保护,如果是这种情况,建议在干燥凉爽的地方放置电脑,并确保风扇正常运转,保证电脑散热良好。
2、其次可能是电脑软件出问题,包括电脑中毒,还有软件有冲突或错误。这些都可能让电脑自动重启,如果要排除软件问题,可先杀毒然后减少电脑中运行的软件,试探性运行软件看看在什么情况下电脑自动重启,如果找到引起重启的软件将其下载看看,如果还不能确定,可以重装系统试试。
3、电脑其他问题引起的电脑重启,包括电脑硬件其他问题,比如硬盘坏道,等等,这些问题要经过电脑硬件测试软件进行测试。如果检测有问题,应即时到维修店修理。
先启动和自己同样的进程,再关闭自己。
如果你使用QT,可以像下面那样做:
C/C++ code#include <QtGui> class Temp : public QWidget { Q_OBJECT private: QLabel label; QPushButton button; public: Temp(QWidget parent = 0); public slots: void ClickedButton(); }; Temp::Temp(QWidget parent) : QWidget(parent) { button = new QPushButton("restart", this); QVBoxLayout layout = new QVBoxLayout; layout->addWidget(button); setLayout(layout); move(200, 200); connect(button, SIGNAL(clicked()), this, SLOT(ClickedButton())); } void Temp::ClickedButton() { QProcess p = new QProcess(this); QString str = QApplication::applicationFilePath(); p->startDetached(str); close(); } #include "mainmoc" int main(int argc, char argv[]) { QApplication app(argc, argv); Temp temp = new Temp; temp->show(); return appexec(); }
以上就是关于电脑无论进什么程序都自动重启怎么办全部的内容,包括:电脑无论进什么程序都自动重启怎么办、windws2000电脑d出C:system32lsass.exe应用程序后提示后电脑自动重启、怎么实现MFC程序自动重启等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)