サービスについて

解決


ss  2014-10-16 05:34:17  No: 46745  IP: [192.*.*.*]

お世話になります。
サービスアプリケーションを以下のように記述しましたが、
1回だけlogが記入されるのですが、以降はLogに出力されません。
ネットの情報を見て作成したのですがよくわかりません。
どうすればいいでしょうか?  よろしくお願いします。
環境はWindows7  Pro  +DelphiXE2です。
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.SvcMgr, Vcl.Dialogs;

type
  TService1 = class(TService)
    procedure ServiceContinue(Sender: TService; var Continued: Boolean);
    procedure ServiceExecute(Sender: TService);
    procedure ServicePause(Sender: TService; var Paused: Boolean);
  private
    { Private 宣言 }
  public
    function GetServiceController: TServiceController; override;
    { Public 宣言 }
  end;

var
  Service1: TService1;

implementation

{$R *.DFM}

procedure DosaveLog(Msg: String);
var
  lolist : TStringList;

begin
  try
    lolist := TStringList.Create;
    if FileExists('D:\DelphiXe2\service.log') then
      lolist.LoadFromFile('D:\DelphiXe2\service.log');

      lolist.Add(TimeToStr(now) + ':' + Msg);

  {except
    on e: exception do
      lolist.Add(TimeToStr(now) + ': ERROR ' + E.Message);

  end; }

  finally
    lolist.SaveToFile('D:\project\DelphiXE2\service.log');
    lolist.Free;

  end;
end;




procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  Service1.Controller(CtrlCode);
end;

function TService1.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure TService1.ServiceContinue(Sender: TService; var Continued: Boolean);
begin
   while not Terminated do
    begin
      Sleep (10);
      ServiceThread.ProcessRequests (False);
    end;
end;

procedure TService1.ServiceExecute(Sender: TService);

const
   SecBetweenRuns = 10;
var
   Count: Integer;
 begin
   Count := 0;
   while not Terminated do
   begin
     Inc(Count);
     if Count >= SecBetweenRuns then
     begin
       Count := 0;
       { place your service code here }
       { this is where the action happens }
      // SomeProcedureInAnotherUnit;
        DoSaveLog('ServicExcute');

     end;
     Sleep(1000);
     ServiceThread.ProcessRequests(False);
   end;


end;

procedure TService1.ServicePause(Sender: TService; var Paused: Boolean);
begin
     Paused := True;
end;

end.

編集    削除
 2014-10-16 05:58:12  No: 46746  IP: [192.*.*.*]

ファイルのパスの指定が間違っていませんか。

編集    削除
ss  2014-10-16 06:24:56  No: 46747  IP: [192.*.*.*]

あさんありがとうございます。
すみませんご指摘通り単純なミスでした。

編集    削除