当前位置:编程学习 > C/C++ >>

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语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,