![]() |
AW: Dienst, Service oder was? (D 2009 Prof)
Ja klar, aber mir geht es auch um´s Prinzip.
Es sollte doch gehen, einen solchen Dienst zu realisieren - und das möchte ich mal testen. Vielleicht können ja auch andere mal von dem Thread profitieren. |
AW: Dienst, Service oder was? (D 2009 Prof)
Zitat:
|
AW: Dienst, Service oder was? (D 2009 Prof)
Ich habe jetzt noch einmal einen neuen Service erstellt, aber bekomme das auch nicht hin.
In den Service-Ereignissen lasse ich mir Nachrichten ausgeben: * Beim Installieren: create, beforeinstall, afterinstall, "wurde installiert", destroy * Starten des Dienstes bricht nach einigen Sekunden mit einer Fehlermeldung ab (Dienst antwortet nicht rechtzeitig) (Das Ereignis Execute wird gar nicht erreicht.) * Beim Deinstallieren: create, beforedeinstall, afterdeinstall, "wurde deinstalliert", destroy Muss man noch etwas bei den Eigenschaften einstellen? "Interactive" scheint ja egal zu sein. |
AW: Dienst, Service oder was? (D 2009 Prof)
Zitat:
probier mal den NT-Service von ![]() Der funktioniert auch noch unter Vista/7, um deine Abfrage jede Stunde auszulösen verwende folgenden Code:
Delphi-Quellcode:
KUBA
var
Time :real; PROCEDURE SERVICE_MAIN; begin Time := Now+(StrtoTime('01:00:00')); repeat if Now > TimeToStr(Time) then begin //AKTION end; sleep(1000); //den Dienst "bremsen", sonst 100% CPU Auslastung. until stopped; end; BEGIN PROG_MAIN; END. |
AW: Dienst, Service oder was? (D 2009 Prof)
Hmm, das wird mir zu kompliziert. Das Tut ist ja auch aus 2001.
Soll es nicht möglich sein, so einen einfachen "Dienst" (z.B. Beep jede Minute) mit D2009 und dem TService unter Windows7 komfortabel zu realisieren? Das kann ich mir eigentlich nicht vorstellen... |
AW: Dienst, Service oder was? (D 2009 Prof)
Zitat:
Das Beispiel ist doch ganz einfach zu kompilieren, oder ? Schau nochmal ![]() Ein einfacher Dienst und Beep kannst du auch so machen:
Delphi-Quellcode:
PROCEDURE SERVICE_MAIN;
begin repeat beep; sleep(60000); //jede Minute ein beep until stopped; end; BEGIN PROG_MAIN; END. |
AW: Dienst, Service oder was? (D 2009 Prof)
Zitat:
|
AW: Dienst, Service oder was? (D 2009 Prof)
Ja klar, muss man sich beschäftigen. Aber man sollte immer den günstigsten/einfachsten Weg wählen.
Ich verstehe das immer noch so, dass für diese Zwecke EIGENTLICH der TService vorgesehen ist und dass die MainSchleife in der OnExecute-Behandlung läuft. Entsprechende Beispiele habe ich im Netz gefunden, bei mir funktioniert das aber nicht. Verstehe ich das völlig falsch? Kann das gar nicht gehen oder geht das nur unter Vista und Win7 nicht (mehr)? Installieren kann ich den von mir erstellten Dienst ja, er lässt sich nur nicht korrekt starten. Die Alternative nach "Assabard" finde ich recht umständlich und würde mich da nur einarbeiten wollen, wenn ich mit dem TService völlig auf dem Holzweg bin. Vielleicht klemmt mein bisheriger Dienst-Versuch ja auch nur an einer Kleinigkeit? |
AW: Dienst, Service oder was? (D 2009 Prof)
Es ist schon sehr merkwürdig das nur bei dir der TService nicht funktioniert.
Hast du denn schonmal überprüft ob überhaupt die Execute-Methode aufgerufen wird? Das du während dem installieren und desinstallieren ein Beep hörst wird übrigens nicht an der Execute-Methode liegen. Viel mehr vermute ich das dein Timer zur Designzeit platziert wurde und Enabled dort noch auf True steht. Denn die Execute-Methode wird während dem installieren und deinstallieren eigentlich nicht aufgerufen. |
AW: Dienst, Service oder was? (D 2009 Prof)
Das mit dem Timer stimmt. Der war in der "Form" zur Designzeit aktiviert.
Ich habe dann einen Test ohne Timer versucht und in den Ereignissen Nachrichten ausgegeben (habe ich weiter oben aufgeführt). OnInstall usw werden durchgeführt. In der Systemüberwachung/Dienste starte ich dann den Service, was nach einer Weile mit einer Fehlermeldung abbricht. OnExecute wird nicht erreicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 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-2025 by Thomas Breitkreuz