/******************************************************************************
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();
}
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);