SERVICE_FAILURE_ACTIONS ServiceFailAction;
SC_ACTION SC_Action[3];
for(UINT i=0; i<sizeof(SC_Action)/sizeof(SC_ACTION); i++)
{
SC_Action[i].Delay = 60*1000; //1分钟后重新启动服务
SC_Action[i].Type = SC_ACTION_RESTART; //失败后重启服务
}
ServiceFailAction.dwResetPeriod = 60*60*24; //1天后,重置失败计数
ServiceFailAction.lpRebootMsg = NULL;
ServiceFailAction.lpCommand = NULL;
ServiceFailAction.cActions = 3;
ServiceFailAction.lpsaActions = SC_Action;
SC_HANDLE hSCM = ::OpenSCManager(NULL, NULL, GENERIC_ALL);
SC_HANDLE hService = ::OpenService(hSCM, TEXT("Themes"), GENERIC_ALL);
ChangeServiceConfig2(hService, SERVICE_CONFIG_FAILURE_ACTIONS, &ServiceFailAction);
VC++ 系统服务如何让服务进程结束后依赖windows自身把服务重启
最新推荐文章于 2024-06-09 18:18:17 发布