Windows服务之启动、停止、暂停、继续
SC_HANDLE scm,sHandle;
SERVICE_STATUS ServiceStatus;
scm=OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if (scm!=NULL)
{
//启动service
sHandle=OpenService(scm, "GwbnService",SERVICE_START);
if(sHandle!=NULL)
{
StartService(sHandle,0,NULL))//开始Service
}
//停止Service
sHandle=OpenService(scm, "GwbnService",SERVICE_STOP|SERVICE_QUERY_STATUS);
if(sHandle!=NULL)
QueryServiceStatus(sHandle,&ServiceStatus);
if(ServiceStatus.dwCurrentState == SERVICE_RUNNING || ServiceStatus.dwCurrentState == SERVICE_PAUSED)
{
ControlService(sHandle,SERVICE_CONTROL_STOP,&ServiceStatus);
}
//暂停Service
sHandle=OpenService(scm, "GwbnService",SERVICE_PAUSE_CONTINUE|SERVICE_QUERY_STATUS);
if(sHandle!=NULL)
QueryServiceStatus(sHandle,&ServiceStatus);
if(ServiceStatus.dwCurrentState == SERVICE_RUNNING)
{
ControlService(sHandle,SERVICE_CONTROL_PAUSE,&ServiceStatus);
}
//继续Service
sHandle=OpenService(scm, "GwbnService",SERVICE_PAUSE_CONTINUE|SERVICE_QUERY_STATUS);
if(sHandle!=NULL)
QueryServiceStatus(sHandle,&ServiceStatus);
if(ServiceStatus.dwCurrentState == SERVICE_PAUSED)
{
ControlService(sHandle,SERVICE_CONTROL_CONTINUE,&ServiceStatus);
}
}
注意:服务有服务名称和显示名称之分,这里需要的是服务名称
摘自:Awey_001的专栏
补充:软件开发 , C语言 ,