Текущий архив: 2011.07.03;
Скачать: CL | DM;
Внизкак найти числовой ID, путь и описание службы (service) Найти похожие ветки
← →
Xalexo (2011-03-22 22:59) [0]C именем сервиса (lpServiceName\lpDisplayName) и тек. состоянием (dwCurrentState) проблем нет, а вот
как найти числовой ID, путь и описание службы посредством функции EnumServicesStatus [модуль - WINSVC] (или может - какой другой)??? Подскажите пожалуйста...
← →
Игорь Шевченко © (2011-03-23 00:00) [1]разве у сервисов есть "числовой ID" ?
описание через QueryServiceConfig2
← →
DVM © (2011-03-23 00:06) [2]
> как найти числовой ID
PID процесса службы может быть? QueryServiceStatusEx тогда.
← →
DVM © (2011-03-23 00:10) [3]
> путь
Недостающие функции сам допишешь, там понятно что это:
class function TSCManager.GetConfig(const AServiceName: string;
const AMachineName: string = ThisMachine): TQueryServiceConfig;
var
hManager, hSvc: SC_HANDLE;
BytesNeeded: DWORD;
PServiceConfig: PQueryServiceConfig;
LastErr: DWORD;
begin
hManager := ManagerOpen(SERVICE_QUERY_CONFIG, AMachineName);
try
hSvc := ServiceOpen(AServiceName, hManager, SERVICE_QUERY_CONFIG);
try
BytesNeeded := 0;
if QueryServiceConfig(hSvc, nil, 0, BytesNeeded) then
begin
LastErr := GetLastError;
if LastErr <> ERROR_INSUFFICIENT_BUFFER then
RaiseLastOSError(LastErr);
end;
GetMem(PServiceConfig, BytesNeeded);
try
Win32Check(QueryServiceConfig(hSvc, PServiceConfig, BytesNeeded, BytesNeeded));
Result := PServiceConfig^;
finally
FreeMem(PServiceConfig);
end;
finally
ServiceClose(hSvc);
end;
finally
ManagerClose(hManager);
end;
end;
//----------------------------------------------------------------------------
class function TSCManager.GetBinaryPathName(const AServiceName: string;
const AMachineName: string = ThisMachine): string;
begin
Result := GetConfig(AServiceName, AMachineName).lpBinaryPathName;
end;
← →
Xalexo (2011-03-28 14:47) [4]Спасибо всем
Страницы: 1 вся ветка
Текущий архив: 2011.07.03;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.005 c