Чтобы узнать состояние сервиса, используйте следующую функцию:
| 
 Code:  | 
| 
 function ServiceGetStatus(sMachine, sService: string ): DWord; var h_manager,h_service: SC_Handle; service_status : TServiceStatus; hStat : DWord; begin hStat := 1; h_manager := OpenSCManager(PChar(sMachine) ,Nil, SC_MANAGER_CONNECT); 
 if h_manager > 0 then begin h_svc := OpenService(h_manager,PChar(sService), SERVICE_QUERY_STATUS); 
 if h_svc > 0 then begin if(QueryServiceStatus(h_svc, service_status)) then hStat := service_status.dwCurrentState; 
 CloseServiceHandle(h_svc); end; CloseServiceHandle(h_manager); end; 
 Result := hStat; end; 
  | 
Она возвращает одну из следующих констант:
SERVICE_STOPPED
SERVICE_RUNNING
SERVICE_PAUSED
SERVICE_START_PENDING
SERVICE_STOP_PENDING
SERVICE_CONTINUE_PENDING
или
SERVICE_PAUSE_PENDING
Всё что, что Вам нужно, это unit WinSvc !
- << Назад
 - Вперёд
 
			
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!