Hallo Leute,
ich habe eine neue Aufgabenstellung bekommen und weiß nicht mal wie ich richtig anfangen soll.
Ich soll einen Dienst für einen Windows Server 2003 schreiben.
Dieser Dienst soll regelmäßig (bspw. aller 5 Minuten) über
ADO-Komponenten 2 Datenbanken miteinander vergleichen.
Der Dienst soll selbständig im Hintergrund laufen, sobald der Server gestartet wurde. Dazu soll sich nicht einmal ein Benutzer anmelden müssen.
Mein Ansatz:
Der Datenbankvergleich ist kein Problem. Nur der Dienst / Service.
Ich habe ein neues Projekt erstellt. Datei >> Neu >> Weitere >> Service-Anwendung.
Zum testen würde ich gern regelmäßig eine Zeile mit der aktuellen Zeit in eine Textdatei schreiben.
Da kann ich erstmal sehen, ob es prinzipiell funktioniert.
Ich habe also einen Timer zu meiner
Unit hinzugefügt.
Bisher habe ich folgenden Code:
Delphi-Quellcode:
unit UWGM_Service;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs;
type
TWGM_Refresher =
class(TService)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public Deklarartion}
function GetServiceController: TServiceController;
override;
end;
var
WGM_Refresher: TWGM_Refresher;
implementation
{$R *.DFM}
procedure ServiceController(CtrlCode: DWord);
stdcall;
begin
WGM_Refresher.Controller(CtrlCode);
end;
function TWGM_Refresher.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;
procedure TWGM_Refresher.Timer1Timer(Sender: TObject);
var
zeile: TStrings;
begin
zeile:=TStrings.Create;
zeile.LoadFromFile('
D:\Test\test.txt');
zeile.Add('
Test: '+TimeToStr(Now));
zeile.SaveToFile('
D:\Test\test.txt');
zeile.Free;
end;
end.
Das Programm macht, wenn ich es mit F9 starte, prinzipiell schon mal das was ich möchte, allerdings nur ein mal.
Außerdem kann ich so ja auch nicht sehen, ob es das auch selbständig machen würde.
Was muss ich nun also machen?