说明:
相当于一个定时器,过固定的10天时间将程序重启
// kill.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <windows.h> #include <shellapi.h> #include <time.h> // 定义10天的时间秒数 #define TEN_DAY (10*24*60*60) // 定义要定期调用执行的程序,这里是bat文件 const char* DestTop = "C:\Documents and Settings\Administrator\桌面\start.bat"; //const char * DestTop = "C:\Users\zhu\Desktop\star.bat"; int _tmain(int argc, _TCHAR* argv[]) { while(1) { SYSTEMTIME m_time; GetLocalTime(&m_time); int h=m_time.wHour; int m=m_time.wMinute; int s=m_time.wSecond; printf("%.2d:%.2d:%.2d ",h,m,s); // 调用ShellExecuteA函数启动目标程序,SW_HIDE参数表示静默启动,不显示命令框 HINSTANCE hNewExe = ShellExecuteA(NULL, "open", DestTop, NULL, NULL, SW_HIDE); // 返回值小于等于32表示打开失败 if ((int)hNewExe <= 32) { printf("打开失败! "); break; } printf("Open start.bat Success! "); printf("From now Sleep 10 days... "); //开始等待10天 Sleep(TEN_DAY*1000 - (h*60*60+m*60+s)*1000 ); //10天后关掉相关进程 system("taskkill /im position_machine.exe"); printf("Kill position_machine.exe OK! "); Sleep(1000); system("taskkill /im SSF_AIR.exe"); printf("Kill SSF_AIR.exe OK! "); Sleep(1000); system("taskkill /im java.exe"); printf("Kill java.exe OK! "); Sleep(1000); system("taskkill /im cmd.exe"); printf("Kill cmd.exe OK! "); Sleep(10000); } return 0; }