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