Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > корректный uninstall сервиса


Автор: TheCetus 16.10.2006, 17:03
написал сервис
Код

  TMyService = class(TService)
  ...
  end;

сервис работает корректно, НО
если сервис запущен и я вызываю MyApp.exe /uninstall сервис пропадает из списка активных сервисов но не останавливается...
пробовал в BeforeUnInstall ставить DoStop но вылетает с исключением... как побороть, подскажите, пож-ста

Добавлено @ 17:08 
а нет, вру, сервис пропадает из списка активных сервисов если был uninstall а потом stop... после uninstall висит в списке активных сервисов

Добавлено @ 17:09 
в связи с этим вопрос: можно ли остановить сервис перед uninstall'ом?

Автор: Демо 16.10.2006, 17:14
Цитата(TheCetus @  16.10.2006,  17:03 Найти цитируемый пост)
если сервис запущен и я вызываю MyApp.exe /uninstall сервис пропадает из списка активных сервисов но не останавливается...


Значит, некорректно проходит остановка сервиса.
Надо код смотреть.

Автор: TheCetus 16.10.2006, 17:19
в том то и дело, что я переопределил DoStop

Код

function  TFileCopyService.DoStop: Boolean;
begin
  tmrMain.Enabled := False;
  Log(cServiceStop);
  CloseLogFile; 
  Result := inherited DoStop;
end;


Добавлено @ 17:21 
но если в UnInstall повесить DoStop или Inhertied DoStop то вылетает ошибка и не проходит деинсталяция


M
Girder
Поиск... http://forum.vingrad.ru/index.php?act=Search&f=2

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)