Чтобы узнать состояние сервиса, используйте следующую функцию:
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 !
- << Назад
- Вперёд
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!