AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Selbständiger Windows-Dienst ohne Benutzeranmeldung
Thema durchsuchen
Ansicht
Themen-Optionen

Selbständiger Windows-Dienst ohne Benutzeranmeldung

Ein Thema von Nico B. · begonnen am 19. Jan 2010 · letzter Beitrag vom 19. Jan 2010
 
Nico B.

Registriert seit: 16. Okt 2006
Ort: Riesa
67 Beiträge
 
Delphi XE7 Enterprise
 
#1

Selbständiger Windows-Dienst ohne Benutzeranmeldung

  Alt 19. Jan 2010, 09:12
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?
Nico Bäger
 
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz