Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.02;
Скачать: CL | DM;

Вниз

Как получить список сервисов...   Найти похожие ветки 

 
Ломброзо ©   (2006-03-13 22:03) [0]

... которые могут быть запущены командой net start? Эмпирическим путем научился запускать из командной строки w3svc (IIS) и mysql; интересуют также названия сервисов Oracle и MSSQL


 
Джо ©   (2006-03-13 22:04) [1]

В оснастке Services (Службы) дважды счелкаешь на названии службы и видишь полную коммандную строку. Или это не то?


 
palva ©   (2006-03-13 22:09) [2]

Если программным образом, то искать где-то в реестре. Там же можно и прописать программу как сервис.


 
Sergey Masloff   (2006-03-13 22:18) [3]

HKLM\SYSTEM\CurrentControlSet\Services

для MSSQL например MSSQLSERVER  ;-)))


 
Ломброзо ©   (2006-03-13 22:22) [4]

Sergey Masloff   (13.03.06 22:18) [3]

O! Спасибо


 
Eraser ©   (2006-03-13 22:39) [5]


> Ломброзо ©   (13.03.06 22:03)


procedure TfmMain.GetServiceList(AList: TStrings);
var
 hSC: THandle;
 pcbBytesNeeded, lpServicesReturned, lpResumeHandle,
 cbBufSize: DWORD;
 pStatus, pWork: PEnumServiceStatus;
 i: integer;
 s1: string;
 sl1: TStringList;
begin
 hSC := OpenSCManager(nil, nil, SC_MANAGER_ENUMERATE_SERVICE);
 if hSC = 0 then
   exit;
 try
   AList.Clear;
   cbBufSize := 0;
   lpResumeHandle := 0;
   EnumServicesStatus(hSC,
     SERVICE_WIN32,
     SERVICE_STATE_ALL,
     pStatus^,
     cbBufSize,
     pcbBytesNeeded,
     lpServicesReturned,
     lpResumeHandle);
   pStatus := AllocMem(pcbBytesNeeded);
   sl1 := TStringList.Create;
   try
     sl1.Delimiter := ";";
     cbBufSize := pcbBytesNeeded;
     EnumServicesStatus(hSC,
       SERVICE_WIN32,
       SERVICE_STATE_ALL,
       pStatus^,
       cbBufSize,
       pcbBytesNeeded,
       lpServicesReturned,
       lpResumeHandle);
     pWork := pStatus;
     for i := 1 to lpServicesReturned do
     begin
       case pWork^.ServiceStatus.dwCurrentState of
         SERVICE_CONTINUE_PENDING: s1 := "Wait...";
         SERVICE_PAUSE_PENDING: s1 := "Pausing";
         SERVICE_PAUSED: s1 := "Paused";
         SERVICE_RUNNING: s1 := "Working";
         SERVICE_START_PENDING: s1 := "Starting";
         SERVICE_STOP_PENDING: s1 := "Stoping";
         SERVICE_STOPPED: s1 := "Stoped";
       end;
       sl1.Clear;
       sl1.Add(pWork^.lpDisplayName +
         " (" + pWork^.lpServiceName + ")");
       sl1.Add(s1);
       AList.Add(sl1.DelimitedText);
       inc(pWork);
     end;
   finally
     if Assigned(pStatus) then
     begin
       FreeMem(pStatus,pcbBytesNeeded);
     end;
     sl1.Free;
   end;
 finally
   CloseServiceHandle(hSC);
 end;
end;


 
Eraser ©   (2006-03-13 22:40) [6]

pWork^.lpServiceName - net имя.


 
Ломброзо ©   (2006-03-13 23:50) [7]

Eraser ©
Спасибо за труд :) Подобный код есть и в MSDN :)
Я интересовался с той целью, что мой ноутбук для девелопмента слабоват, поэтому для того, чтобы всякий раз не лазить в Service Manager, я решил смастерить десяток bat-файликов, останавливающих и запускающих взаимосвязанные сервисы - для оптимизации так сказать.



Страницы: 1 вся ветка

Текущий архив: 2006.04.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
15-1142168818
DillerXX
2006-03-12 16:06
2006.04.02
Подскажите такую программу


6-1135000546
bumm
2005-12-19 16:55
2006.04.02
Poluchit IP udalennogo compa


11-1123695011
raskin
2005-08-10 21:30
2006.04.02
KOL - 2.10 - KeyPreview


2-1142520097
Fenix
2006-03-16 17:41
2006.04.02
Динамически создать ListView


3-1139399572
Mishenka
2006-02-08 14:52
2006.04.02
Поля соответствия в таблице связанной сама с собой