windows C++ 出错重启和每天重启

/******************************************************************************
 FUNCTION GetNowTime()                                                                                                                               
 获取当前时间
 XXXX/XX/XX/ XX:XX:XX
******************************************************************************/
string GetNowTime()
{
SYSTEMTIME sys; 
GetLocalTime(&sys); 
char *pchNowTime = new char[1024];
sprintf(pchNowTime,"%4d/%02d/%02d %02d:%02d:%02d",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute,sys.wSecond);
string strNowTime = pchNowTime;
delete[] pchNowTime;
return strNowTime;
}


/******************************************************************************
 FUNCTION GetNowHour()                                                                                                                               
 获取当前时间
 XXXX/XX/XX/ XX:XX:XX
******************************************************************************/
string GetNowHour()
{
SYSTEMTIME sys; 
GetLocalTime(&sys); 
char *pchNowHour = new char[1024];
sprintf(pchNowHour,"%4d/%02d/%02d %02d",sys.wYear,sys.wMonth,sys.wDay,sys.wHour);
string strNowHour = pchNowHour;
delete[] pchNowHour;
return strNowHour;
}


/******************************************************************************
 FUNCTION GetNowDate()                                                                                                                               
 获取当前日期
 XXXX/XX/XX/
******************************************************************************/
string GetNowDate()
{
SYSTEMTIME sys; 
GetLocalTime(&sys); 
char *pchNowDate = new char[1024];
sprintf(pchNowDate,"%4d/%02d/%02d",sys.wYear,sys.wMonth,sys.wDay);
string strNowDate = pchNowDate;
delete[] pchNowDate;
return strNowDate;
}


/******************************************************************************
 FUNCTION FreeEIM_UnhandledExceptionFilter()                                                                                                                               
 结构化异常处理
******************************************************************************/
LONG WINAPI FreeEIM_UnhandledExceptionFilter(LPEXCEPTION_POINTERS ExceptionInfo)
{
string strNowTime = GetNowTime();


cout<<"自动重启. "<< strNowTime << endl;
fstream out; 
out.open("log.txt",ios::app);
out<<"自动重启. "<<strNowTime<<endl; 
out.close();


Sleep(10000);
char szFileName[100];
::GetModuleFileName(NULL, szFileName, _MAX_PATH);


WinExec(szFileName, SW_SHOW);


return EXCEPTION_EXECUTE_HANDLER;
}




/******************************************************************************
 FUNCTION MemError()                                                                                                                               
 内存错误
 确保调用FreeEIM_UnhandledExceptionFilter
******************************************************************************/
void MemError()
{
char *pStr = new char[25];
delete[] pStr;
pStr = NULL;
strcpy(pStr, "parallel programming");     //  对已释放的堆内存进行无效的写操作
}


//每天晚上0点重启
/******************************************************************************
 FUNCTION MemErrorByTime2()                                                                                                                               
 根据时间制造内存错误
******************************************************************************/
void MemErrorByTime2(string strNowDate)
{
string strNowTime = GetNowTime();
//零点重启
//if (strNowTime.find("00:")!=string::npos && strNowTime.find(strNowDate)==string::npos)
//整点重启
//if (strNowTime.find("00:")!=string::npos && strNowTime.find(strNowDate)==string::npos)
if (strNowTime.find(strNowDate)==string::npos)
{
cout<<"进入0点重启程序."<<endl;
fstream out; 
out.open("log.txt",ios::app);
out<<"0点重启. "<<strNowTime<<endl; 
out.close();
MemError();
}

}




//零点重启
string strNowDate = GetNowDate();

MemErrorByTime2(strNowDate);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值