Hola a todos. Tengo una duda respecto aun servicio de windows que estoy desarrollando en Delphi.
Generé mi servicio y para probar con el debug, todas mis funciones las mandaba a llamar desde el OnCreate, con eso no tengo problema, hace todo perfectamente, pero al momento de pasar mis funciones al evento OnExecute para ya poder instalar el servicio, este no se puede iniciarm ya que me manda el error de
"El servicio xx en Equipo Local se inicio y después se detuvo. Algunos servicios se detienen automáticamente si no son usados por ningún servicio o programa".
Este es mi código en el OnCreate:
Código Delphi
[-]procedure TGLOCEDI01.ServiceExecute(Sender: TService);
var
IntervaloConexion : String;
begin
EscribeLog(formatDateTime('yyyymmdd hh:mm:ss', now) + 'Iniciando Servicio...',
GetCurrentDir + '\Log\Log'+ FormatDatetime('yyyymmdd',now)+'.txt');
InicializaVariables();
RealizaConexion();
IntervaloConexion := ExtraDatoTablaGen(127,3);
if IntervaloConexion = '' then
IntervaloConexion := '30000';
EscribeLog(formatDateTime('yyyymmdd hh:mm:ss', now) + 'Activa Timer - Intervalo Conexión: ' + IntervaloConexion,
GetCurrentDir + '\Log\Log'+ FormatDatetime('yyyymmdd',now)+'.txt');
Timer1.Interval := StrToInt(IntervaloConexion);
Timer1.Enabled := True;
while not Terminated do
begin
ServiceThread.ProcessRequests(True); Timer1.Enabled := False;
end;
end;
En cuanto al título de mi pergunta, para hacer este servicio me basé en otro que me pasaron, al parecer hice exactamente lo mismo pero no funciona (lamentablemente la persona que lo hizo ya no se encuentra por aquí). De lo que me percaté es que existe esta línea que tiene el servicio que me pasaron y que mi aplicación no la genera (según yo, debería generarse automáticamente):
No sé si esa sea la razón de que mi servicio no se inicie correctamente, pero no sé cómo hacer para que se genere esa línea.
ACTUALIZACIÓN: Olvidé mencionar que trabajo con D5 y la línea se genera en el archivo .dpr donde se declaran todas la unidades.
Espero y me puedan echar una mano y les agradezco.