Текущий архив: 2002.06.17;
Скачать: CL | DM;
ВнизВопрос по сервисам под win2000!!! Найти похожие ветки
← →
Miron12 (2002-03-15 11:52) [0]Здраствуйте Жители королевства! Вопрос по сервисам под win2000!!!
Такой вопросик! написал сервис под 2000! запускаю и под делфи6 с параметром /instal появляеться в списке сервисов. Все ок!
Сервис реализован так, по таймеру переменная i заноситься в реестр.первоначально таймер активен.
пока не нажимаю ок на диалоговом окне "сервис инсталирован удачно" все нормально, после нажатия. все прекращаеться
может я чето не знаю, в чем ошибка? ниже приведен полный код модуля сервиса!
Помогите пожалуйста уже незнаю где искать!
unit service_u1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs,
DirectPort, ExtCtrls, Registry;
type
TService1 = class(TService)
Timer1: TTimer;
procedure ServiceStart(Sender: TService; var Started: Boolean);
procedure ServiceStop(Sender: TService; var Stopped: Boolean);
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.ServiceStart(Sender: TService; var Started: Boolean);
begin
Timer1.Enabled:=true;
end;
procedure TService1.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
Timer1.Enabled:=false;
end;
procedure TService1.Timer1Timer(Sender: TObject);
var i:integer;
reg: TRegistry;
begin
i:=чего-то присваиваем;
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.LazyWrite := false;
reg.OpenKey("Software\Aerotechnica",false);
reg.WriteString("port", IntToStr(i));
reg.CloseKey;
reg.free;
end;
← →
Shaman_Naydak (2002-03-15 13:25) [1]а ты, это - того, запусти его из панели упраления/сервисы
← →
Miron12 (2002-03-18 10:49) [2]не гони! я его запускаю из сервиса. Доходит до половины и ругаеться
мол устройство не готово! :(( че делать не знаю
← →
vuk (2002-03-18 11:02) [3]procedure TService1.ServiceExecute(Sender: TService);
begin
while not Terminated do
ServiceThread.ProcessRequests(True);
end;
Скорее всего должно помочь.
← →
erik (2002-03-18 13:30) [4]Или записти тред из ServiceStart.
← →
Shaman_Naydak (2002-03-18 18:20) [5]>> vuk
Так этот код wizard сам вставляет.. или думаешь, его убрали?
>> erik
OnServiceStart, как и OnServiceStop запускаются уже из нити сервисного потока
← →
erik (2002-03-19 14:43) [6]А тебе нужно организовть дополнительный поток или говорить основному, что ты работаеш ServiceThread.ProcessRequests(True);
Иначе тебя выгрузят.
Страницы: 1 вся ветка
Текущий архив: 2002.06.17;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.007 c