掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
サービスについて (ID:46745)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になります。 サービスアプリケーションを以下のように記述しましたが、 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.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.