unit ServMain;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.SvcMgr,
Vcl.Dialogs,
Vcl.ExtCtrls;
type
TService4 = class(TService)
procedure ServiceStart(Sender: TService; var Started: Boolean);
procedure ServiceStop(Sender: TService; var Stopped: Boolean);
procedure ServiceCreate(Sender: TObject);
procedure ServiceExecute(Sender: TService);
procedure ServiceDestroy(Sender: TObject);
procedure ServiceBeforeInstall(Sender: TService);
procedure ServiceAfterUninstall(Sender: TService);
private
{ Private-Deklarationen }
LogFile: TStringList;
public
function GetServiceController: TServiceController; override;
{ Public-Deklarationen }
end;
const LogFileName = 'Service_log.txt';
var
Service4: TService4;
implementation
{%CLASSGROUP 'System.Classes.TPersistent'}
{$R *.DFM}
procedure ServiceController(CtrlCode: DWord); stdcall;
begin
Service4.Controller(CtrlCode);
end;
function TService4.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;
procedure TService4.ServiceAfterUninstall(Sender: TService);
begin
LogFile.Add(DateTimeToStr(Now)+' OnAfterInstall');
LogFile.SaveToFile(LogFileName);
end;
procedure TService4.ServiceBeforeInstall(Sender: TService);
begin
LogFile.Add(DateTimeToStr(Now)+' OnBeforeInstall');
LogFile.SaveToFile(LogFileName);
end;
procedure TService4.ServiceCreate(Sender: TObject);
begin
LogFile:=TStringList.Create;
LogFile.Add(DateTimeToStr(Now)+' OnCreate');
LogFile.SaveToFile(LogFileName);
end;
procedure TService4.ServiceDestroy(Sender: TObject);
begin
LogFile.Free;
end;
procedure TService4.ServiceExecute(Sender: TService);
begin
while not Terminated do
begin
LogFile.Add(DateTimeToStr(Now)+' OnExecute');
LogFile.SaveToFile(LogFileName);
ServiceThread.ProcessRequests(False);
Sleep(1000);
end;
end;
procedure TService4.ServiceStart(Sender: TService; var Started: Boolean);
begin
LogFile.Add(DateTimeToStr(Now)+' Service gestartet');
LogFile.SaveToFile(LogFileName);
end;
procedure TService4.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
LogFile.Add(DateTimeToStr(Now)+' Service gestoppt');
LogFile.SaveToFile(LogFileName);
end;
end.