- 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);
}
}
注意:服务有服务名称和显示名称之分,这里需要的是服务名称