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

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

TService [D7, WinXP]


iXT ©   (2006-12-19 15:36:00) 

Приветствую!

Подскажите: сделал службу. В ММС есть описание службы. Какое св-во TService отвечает за него?

З.Ы.
     Может туплю, но чего-то не найду.


Сергей М.   (2006-12-20 10:21:00) [1]


> (Или нет?)
>


Или.

Как раз именно ChangeServiceConfig 2и позволяет изменить описание.


iXT   (2006-12-20 09:28:00) [2]

В сущности ChangeServiceConfig ИМХО будет делать тоже самое.
(Или нет?)

Благодарю.


iXT   (2006-12-20 09:22:00) [3]


> Чапаев ©   (19.12.06 19:48) [11]

Вообще логично.


Чапаев   (2006-12-19 19:48:00) [4]

> [2] iXT ©   (19.12.06 15:58)
Лично я в обработчике Service.OnAfterInstall руками прописываю в реестр описание. И Удаляю в обработчике Service.OnBeforeUninstall.


iXT   (2006-12-19 16:58:00) [5]


> Ну не предусмотрено это в классе TService, что ж тут поделать?

Тяжелый случай

Спасибо. А то так и искал бы.


Rouse_   (2006-12-19 16:45:00) [6]


> Я чего-то не понял. Я пишу свой сервис. А функция предлагает
> изменить конфигурацию установленного. ???

Все верно:

function DBAInstall: Boolean;
const
 StartType =
{$IFDEF SERVICE_DEBUG}          
   SERVICE_DEMAND_START;
{$ELSE}
   SERVICE_AUTO_START;
{$ENDIF}
var
 SCManager, Service: SC_HANDLE;
 Info: String;
begin
 SCManager := OpenSCManager(nil, nil, SC_MANAGER_CREATE_SERVICE);
 if SCManager <> 0 then
 try
   Service := CreateService(SCManager, DBAServiceName, DBAServiceDisplayName,
     SERVICE_ALL_ACCESS, SERVICE_WIN32_SHARE_PROCESS or SERVICE_INTERACTIVE_PROCESS,
     StartType, SERVICE_ERROR_NORMAL, PChar('"' + ParamStr(0) + '" -service'),
     nil, nil, PChar(DBADependencies), nil, nil);
   if Service <> 0 then
   try
     Result := ChangeServiceConfig(Service, SERVICE_NO_CHANGE,
       SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, nil, nil,
       nil, nil, nil, nil, nil);
     Info := DBAServiceInfo;
     if Result then
       Result := ChangeServiceConfig2(Service,
         SERVICE_CONFIG_DESCRIPTION, @Info);
   finally
     CloseServiceHandle(Service);
   end
   else
     Result := GetLastError = ERROR_SERVICE_EXISTS;
 finally
   CloseServiceHandle(SCManager);
 end
 else
   Result := False
end;


Сергей М.   (2006-12-19 16:30:00) [7]


> Я пишу свой сервис


было бы гораздо веселей, если бы ты писал "чужой")


> функция предлагает изменить конфигурацию установленного.
>  ?


Именно так.

Ну не предусмотрено это в классе TService, что ж тут поделать ?


iXT   (2006-12-19 16:28:00) [8]

Я чего-то не понял. Я пишу свойсервис. А функция предлагает изменить конфигурацию установленного. ???


BiN   (2006-12-19 16:22:00) [9]


> iXT ©   (19.12.06 15:58) [2]

ChangeServiceConfig2


Джо   (2006-12-19 16:14:00) [10]

> [4] iXT ©   (19.12.06 16:13)
> Это где?

Это в Windows API.


iXT   (2006-12-19 16:13:00) [11]

Это где?


Сергей М.   (2006-12-19 16:00:00) [12]

Глянь в Query/ChangeServiseConfig()


iXT   (2006-12-19 15:58:00) [13]

Вот блин. Тяжко искать черную кошку...

И где сие чудо прописывается? в Project options тоже вроде ничего нет.


Сергей М.   (2006-12-19 15:45:00) [14]

Никакое.


Наверх

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