Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   Problema programando servicio (https://www.clubdelphi.com/foros/showthread.php?t=87400)

Nitrogenox 28-12-2014 17:04:09

Problema programando servicio
 
Primeramente un saludo para todos los del foro y mencionar que uso Lazarus 1.2.6 sobre Windows 7.

Deseo programar un servicio para correrlo en windows, busque mucho en internet y probe un par de ejemplos que lastimosamente no pudieron solucionar el probelma que tengo. El problema esta en que, si bien al compilar no tengo ningun error, al parecer el servicio no hace lo que esta en la secciones OnExecute, OnStart, etc. no se si es un probelma del IDE o me esta faltanfo algun detalle.

Pongo el codigo que utilice como guia y que aparentemente funciona pero en mi caso no lo hace.

Código Delphi [-]

unit DaemonUnit1;

{$mode objfpc}
{$H+}

interface

uses
  Classes, SysUtils, FileUtil, DaemonApp;

type { TDaemon1 }
  TDaemon1 = class(TDaemon)
    procedure DataModuleExecute(Sender: TCustomDaemon);
    procedure DataModuleShutDown(Sender: TCustomDaemon);
    procedure DataModuleStart(Sender: TCustomDaemon; var OK: boolean);
    procedure DataModuleStop(Sender: TCustomDaemon; var OK: boolean);
  private { private declarations }
  public { public declarations } end;

var
  Daemon1: TDaemon1;
  Log: TextFile;

implementation

procedure RegisterDaemon;
begin
  RegisterDaemonClass(TDaemon1);
end; {$R *.lfm} { TDaemon1 }

procedure TDaemon1.DataModuleExecute(Sender: TCustomDaemon);
begin
  while Self.Status = csRunning do
  begin
    sleep(1000);
    WriteLn(Log, datetimetostr(Now));
    Flush(Log);
    LogMessage(datetimetostr(Now));
  end;
end;

procedure TDaemon1.DataModuleShutDown(Sender: TCustomDaemon);
begin
  WriteLn(Log, 'Shutdown');
  Flush(Log);
end;

procedure TDaemon1.DataModuleStart(Sender: TCustomDaemon; var OK: boolean);
begin
  OK := True;
  WriteLn(Log, 'Start');
  Flush(Log);
end;

procedure TDaemon1.DataModuleStop(Sender: TCustomDaemon; var OK: boolean);
begin
  OK := True;
  WriteLn(Log, 'Stop');
  Flush(Log);
end;

initialization

RegisterDaemon;
AssignFile(Log, 'msaplog.txt');
Rewrite(Log);

end.

Si bien el servicio se instala y corre, no registra cuando el servicio se inicia, detiene o apaga como esta programado. Cada que se inicia el servicio crea el archivo TXT pero no anota nada en él.

Agradecere cualquier ayuda que puedan brindarme, ya que llevo semanas con esto y no puedo hacer que funcione el servicio correctamente.
Gracias.

nlsgarcia 28-12-2014 19:20:13

Nitrogenox,

¡Bienvenido al Club Delphi! :D

Te sugiero revisar la Guía de estilo de los foros, recomendada a todos los nuevos ingresos al Club Delphi.

¡Gracias por tu cooperación! :) ^\||/

Saludos,

Nelson.


La franja horaria es GMT +2. Ahora son las 04:18:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi