Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2014, 14:30   #1
Даниил_глазко
Форумчанин
 
Аватар для Даниил_глазко
 
Регистрация: 25.10.2010
Сообщений: 155
Вопрос DoShutdown, DoStop в сервисах Delphi

Всем привет. Написал тестовый сервис:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs,
  ExtCtrls;

type
  TService1 = class(TService)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    function GetServiceController: TServiceController; override;
    { Public declarations }
  end;

var
  Service1: TService1;

implementation

{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  Service1.Controller(CtrlCode);
end;

function TService1.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure TService1.Timer1Timer(Sender: TObject);
begin
Service1.DoShutdown;
Service1.DoStop;
end;

end.
Т.е. После запуска сервиса, по прошествию 2 секунд сервис должен выключится, однако вместо этого сервис повисает с состоянием SERVICE_STOP_PENDING(наверное).

Скрин в Диспетчере служб:
http://screenshot.su/show.php?img=23...c9a2baab0f.jpg

Система Windows 7 x64 Professional, Delphi 7. Заранее спасибо!
Даниил_глазко вне форума Ответить с цитированием
Старый 25.02.2014, 14:41   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

http://www.programmersforum.ru/showthread.php?t=196295
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.02.2014, 14:51   #3
Даниил_глазко
Форумчанин
 
Аватар для Даниил_глазко
 
Регистрация: 25.10.2010
Сообщений: 155
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
*Офтоп* Аватар, сколько же ты мне раз уже помогал за 2 года)))

*Сабж*
Но статус сервиса же меняется, значит тймер работает. Почему служба не выгружается

ок... Протестил, залил в TService1.ServiceStart, сервис вырубается нормально

В
Код:
procedure TService1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
  Service1.DoShutdown;
end;
тоже не работает

Последний раз редактировалось Stilet; 25.02.2014 в 17:18.
Даниил_глазко вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы при использовании Sphinx4 jar в .NET через ikvm.net или веб сервисах CodeGust Общие вопросы .NET 0 27.04.2011 02:04
Аутентификация в Wеb-сервисах (SOAP) Ser@Fim PHP 1 17.03.2011 06:38
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54