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的專欄