Вниз
Скачать: CL | DM;

Список служб W2K, XP   Найти похожие ветки 

← →
Babay ©   (2003-11-25 10:32) [0]

Подскажите как получить список служб и их состояние (работает/стоит) на своем или другом компьютере в сети, если я имею на них(компьютерах) соответствующие права (ну в смысле админ).


← →
Digitman ©   (2003-11-25 10:58) [1]

примерный алгоритм перечисления имен зарегистрированных служб


procedure TForm1.Button2Click(Sender: TObject);
var
hSM: THandle;
hSvc: THandle;
hSDBLock: Pointer;
EnumInfo, p: PEnumServiceStatus;
EnumState: Boolean;
BytesNeeded: Cardinal;
EntriesReturned: Cardinal;
NextEntry: Cardinal;
i: Integer;
begin
hSM := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS or GENERIC_READ or GENERIC_WRITE);
Win32Check(hSM <> 0);
try
hSDBLock := LockServiceDatabase(hSM);
Win32Check(hSDBLock <> nil);
try

EnumInfo := nil;
NextEntry := 0;
memo1.Clear;
EnumState := EnumServicesStatus(hSM,
SERVICE_WIN32 or SERVICE_DRIVER,
SERVICE_ACTIVE or SERVICE_INACTIVE,
EnumInfo^,
0, //SizeOf(EnumInfo),
BytesNeeded,
EntriesReturned,
NextEntry
);
if GetLastError <> ERROR_MORE_DATA then
RaiseLastWin32Error
else
begin
GetMem(EnumInfo, BytesNeeded);
try
Win32Check(EnumServicesStatus(hSM,
SERVICE_WIN32 or SERVICE_DRIVER,
SERVICE_ACTIVE or SERVICE_INACTIVE,
EnumInfo^,
BytesNeeded,
BytesNeeded,
EntriesReturned,
NextEntry
));

p := EnumInfo;
for i := 0 to EntriesReturned - 1 do
begin
memo1.Lines.Add(p.lpServiceName);
inc(p);
end;
finally
FreeMem(EnumInfo);
end;
end;

finally
UnlockServiceDatabase(hSDBLock);
end;
finally
CloseServiceHandle(hSM);
end;
end;


структура PEnumServiceStatus даст тебе инф-цию о прочих атрибутах перечисляемых служб


← →
Digitman ©   (2003-11-25 11:02) [2]

это - на лок.компьютере ...
на удаленном - см. параметры вызова OpenSCManager()


← →
Babay ©   (2003-11-25 11:44) [3]

Спасибо то что нужно.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
4-29662
Леприкон
2003-12-05 09:08
2004.02.10
Смена цвета окна


1-29410
Daniel
2004-01-31 18:32
2004.02.10
Смысл строки Type(Object1) := Object2;


4-29650
Kinder
2003-12-07 11:45
2004.02.10
Заполнение корзины


6-29507
Elik
2003-12-05 10:51
2004.02.10
Как загрузить в IdHTTP вторую половину странички


1-29341
ViM
2004-01-29 04:45
2004.02.10
Как сделать плоские скроллбары у TreeView?




   Наверх