Ver Mensaje Individual
  #1  
Antiguo 19-05-2017
EagleKingson EagleKingson is offline
Registrado
NULL
 
Registrado: abr 2015
Posts: 8
Reputación: 0
EagleKingson Va por buen camino
Generar línea {$R *.TLB}

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); //wait for termination;
    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):

Código Delphi [-]
{$R *.TLB}

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.
Responder Con Cita