Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.016 c
1-55179
Vladimir B.
2002-06-04 09:44
2002.06.17
Как правильно удалять объект?


3-54984
RiNat
2002-05-23 04:48
2002.06.17
THalcyonDataSet для чайника


1-55094
Kordel
2002-06-05 21:40
2002.06.17
FreeInstance


3-54987
Browko Dmitrey
2002-05-22 18:24
2002.06.17
Глюк с Parameters в TADOQuery


1-55178
VID
2002-06-04 20:26
2002.06.17
Работа модуля блокировки клавы и мыши. Есть вопросы...