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