/////////////////////////////
启动服务
//////////////////////////////////////////
void CheckStartService()
{
SC_HANDLE hSC=OpenSCManager(NULL,NULL,GENERIC_EXECUTE);
if
(hSC==NULL)
{
return
;
}
//
打开服务
SC_HANDLE hSvc=OpenService(hSC,L
"李多海"
,SERVICE_START|SERVICE_QUERY_STATUS|SERVICE_STOP);
if
(hSvc==NULL)
{
CloseServiceHandle(hSC);
}
//
获取服务的状态
SERVICE_STATUS status;
if
( ::QueryServiceStatus( hSvc, &status) == FALSE)
{
::CloseServiceHandle( hSvc);
::CloseServiceHandle( hSC);
return
;
}
//
如果处于停止状态则启动服务
if
( status.dwCurrentState == SERVICE_STOPPED)
{
//
启动服务
if
(StartService(hSvc,NULL,NULL)==FALSE)
{
::CloseServiceHandle( hSvc);
::CloseServiceHandle( hSC);
return
;
}
//
等待服务启动
while
( ::QueryServiceStatus( hSvc, &status) == TRUE)
{
::Sleep( status.dwWaitHint);
if
( status.dwCurrentState == SERVICE_RUNNING)
{
::CloseServiceHandle( hSvc);
::CloseServiceHandle( hSC);
return
;
}
}
}
::CloseServiceHandle( hSvc);
::CloseServiceHandle( hSC);
return
;
}