Содержание материала

Чтобы узнать состояние сервиса, используйте следующую функцию:

 

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 !

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить