Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с сервисами [D6, WinXP]


Windows ©   (2005-09-09 10:54:00) 

Следующая функция создает сервис:

function CreateNTService(ExecutablePath, ServiceName: string): boolean;
var
 hNewService, hSCMgr: SC_HANDLE;
 FuncRetVal: Boolean;
begin
 FuncRetVal := False;
 hSCMgr := OpenSCManager(nil, nil, SC_MANAGER_CREATE_SERVICE);
 if (hSCMgr <> 0) then
 begin
   hNewService := CreateService(hSCMgr, PChar(ServiceName), PChar

(ServiceName),
     STANDARD_RIGHTS_REQUIRED, SERVICE_WIN32_OWN_PROCESS,
     SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,
     PChar(ExecutablePath), nil, nil, nil, nil, nil);
   CloseServiceHandle(hSCMgr);
   if (hNewService <> 0) then
     FuncRetVal := true
   else
     FuncRetVal := false;
 end;
 CreateNTService := FuncRetVal;
end;

Как доработать ее до того, чтобы она создавала сервис, который был бы:
1. Уже запущен.
2. Его нельзя было отсановить, выключить.(короче все эти команды были

отключены)
3. И он был на автозапуске.


Digitman   (2005-09-09 11:07:00) [1]


> 1. Уже запущен.


см. StartService()


> 2. Его нельзя было отсановить, выключить


см. в справке по CreateService() описание 4-го параметра ф-ции (dwDesiredAccess)


> 3. И он был на автозапуске


см. в справке по CreateService() описание 6-го параметра ф-ции (dwStartType)


Наверх

Титульная страница Поиск, карта сайта Написать письмо