Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Programm als Dienst (https://www.delphipraxis.net/17906-programm-als-dienst.html)

Matt 11. Mär 2004 11:51


Programm als Dienst
 
Ich bin mir sicher das, das was ich benötige nur ein Dreizeiler ist, aber ich finde keinen Anfang für ein Tool, welches als Windows-Dienst läuft und um xx:xx Uhr eine, in einer .ini Datei angegebene, Internetseite aufruft!

:gruebel:
Wo muss ich da ansetzen, was ist zu beachten!
Hat das jemand vielelicht schon mal gemacht, bzw. evtl. fertig!

Gruß Matt

Dannyboy 11. Mär 2004 12:02

Re: Programm als Dienst
 
Servus Matt,
muss es denn tatsächlich ein Dienst sein?
Dein Programm könnte nämlich auch permanent im Hintergrund laufen (also
als Prozess) und zu einer bestimmten Zeit (kann ja im Programm
geprüft werden) Deine Aufgabe erfüllen, ohne ein Dienst zu sein.
Du könntest Dein Programm so in der Registry eintragen,
dass es bei jedem Neustart des Computers automatisch anläuft.
Das ist vielleicht eine leichtere Variante, als einen Dienst
zu schreiben und sie erfüllt trotzdem den selben Zweck, wenn
ich Dich richtig verstanden habe? :gruebel:

Mit Diensten kenne ich mich nicht aus, aber bei meiner
vorgeschlagenen Variante könnte ich Dir helfen.

r_kerber 11. Mär 2004 12:04

Re: Programm als Dienst
 
Hallo Matt,

mal so aus'm Bauch heraus:
  • Du kannst mit Delphi NT-Dienste (Services) erzeugen. Unter Datei - Neu - Weitere. Und dann Service-Anwendung auswählen
  • Dein Problem könntst Du mit einem Timer lösen, der in regelmäßigen Abständen die Uhrzeit überprüft.
In der OH von D6 gibt es dazu auch noch etwas nähere Erläuterung (mit Code-Schnipdeln).
Du kannst aber auch eine "normale" Delphi-Anwendung schreiben (am besten eine Konsolen-Anwendung) und diese dann durch NT selbst als geplanten Task starten lassen.

Sharky 11. Mär 2004 12:09

Re: Programm als Dienst
 
Wenn die Anwendung kein Dienst ist hat er aber das Problem das jemand am Rechner angemeldet sein muss.

Dannyboy 11. Mär 2004 12:10

Re: Programm als Dienst
 
Zitat:

Zitat von r_kerber
Dein Problem könntst Du mit einem Timer lösen, der in regelmäßigen Abständen die Uhrzeit überprüft.
Du kannst aber auch eine "normale" Delphi-Anwendung schreiben (am besten eine Konsolen-Anwendung) und diese dann durch NT selbst als geplanten Task starten lassen.

Zwei Kluge, ein Gedanke. :wink:

@Matt :
Ich stimme r_kerber vollkommen zu. Mach's Dir nicht schwerer, als nötig.
Hier übrigens mal ein Turorial zu Diensten, aber wie gesagt: Ich würde diesen Weg an Deiner Stelle vermeiden.

r_kerber 11. Mär 2004 12:10

Re: Programm als Dienst
 
@Sharky: Stimmt. :oops:

Matt 11. Mär 2004 12:13

Re: Programm als Dienst
 
Danke Ihr beiden, das mit dem normalen Programm ist gar keine schlechte Idee! Der Dienst wirkt zwar etwas proffiger, aber das ist ja eh nur für mich.

Das mit dem "Services" erstellen unter Delphi hatte ich mir schon angeschaut, bin aber komplett beim Versuch, das zu starten, gescheitert.

Gruß Matt

Dannyboy 11. Mär 2004 12:14

Re: Programm als Dienst
 
Zitat:

Zitat von Sharky
Wenn die Anwendung kein Dienst ist hat er aber das Problem das jemand am Rechner angemeldet sein muss.

Ja das stimmt, aber vielleicht soll die Anwendung sowieso nur unter dieser Bedingung laufen? :gruebel:
Das müssten wir erst mal von Matt erfahren.

Matt 11. Mär 2004 12:15

Re: Programm als Dienst
 
uupss...
stimmt Sharky hat Recht, das ist das Problem, an dem Rechner ist nie jemand angemeldet!

@Dannyboy
Danke für den Link, schaue mir das mal an

sakura 11. Mär 2004 12:16

Re: Programm als Dienst
 
@Matt: Welche Delphi-Version nutzt Du?

...:cat:...

Matt 11. Mär 2004 12:20

Re: Programm als Dienst
 
@sakura
Delphi 7 Pro

PS. Das mit dem Dreizeiler nehme ich zurück :oops:

Dannyboy 11. Mär 2004 12:26

Re: Programm als Dienst
 
Vielleicht passt ein Dreiseiter eher. :wink: :wink: :wink:

Chewie 11. Mär 2004 12:37

Re: Programm als Dienst
 
Du hast eine Pro-Version? Gut, dann ist das ja kein Problem. Du erstellst dir deinen Dienst, haust nen Timer rein, machst dort deine Aktion und compilierst das ganze. Dann installierst du den Dienst via <MeinProg.exe> /install und startest ihn über Systemsteuerung->Verwaltung->Dienste.

sakura 11. Mär 2004 12:40

Re: Programm als Dienst
 
Liste der Anhänge anzeigen (Anzahl: 1)
Okay anbei ein Beispiel für Deine Basis.

Installieren mit
PfadZurExe\GetTheSite.exe /install

Deinstallieren mit
PfadZurExe\GetTheSite.exe /uninstall

In der Service Konsole findest Du den Service unter Automatic HTTP File Download.

Im Verzeichnis der Anwendung muss die Datei http.ini liegen. Aufbau ist in der ZIP, Service ist dokumentiert. Der erste Download erfolgt eine Sekunde nach Start. War der Versuch erfolgreich erfolgt der nächste Versuch zehn Minuten später ansonsten in einer Stunde.

Have fun!

...:cat:...

Robert_G 11. Mär 2004 12:41

Re: Programm als Dienst
 
Warum nicht einfach eine kleine Anwendung, die Startet, die Ini ausliest, die Website öffnet und sich danach wieder schließt.
Das Ganze im Taskscheduler von Windows eintragen und täglich um xx:xx ausführen lassen.

Ist vielleicht kein 3-Zeiler, aber viel mehr wird's auch nicht :wink:

Matt 11. Mär 2004 12:50

Re: Programm als Dienst
 
@Sakura
WAHNSINN! Das schaue ich mir gleich mal an! EIN RIESEN GROSSES DANKESCHÖN VORAB!
Ich melde mich dann, wenn ich es verinnerlicht habe!

Gruß Matt

r_kerber 11. Mär 2004 13:11

Re: Programm als Dienst
 
BTW: mein Vorschlag mit dem geplanten Task funktioniert auch. Habe es gearade getestet. Neuen geplanten Task erzeugt, abgemeldet und gewartet. Wurde zu genau der gewünschten Zeit ausgeführt!

Matt 11. Mär 2004 13:14

Re: Programm als Dienst
 
@r_kerber
Danke, das gut zu wissen, somit hat man noch eine Alternative!

Gruß Matt

Robert_G 11. Mär 2004 13:16

Re: Programm als Dienst
 
Der Tasksched lässt sich mit dieser Unit auch ziemlich easy von Delphi aus steuern.
(Variants muss noch in die USES-Clause)

sakura 11. Mär 2004 15:37

Re: Programm als Dienst
 
@Matt: Ist alles klar mit der Soße oder brauchst Du noch ein wenig Salz?

...:cat:...

Matt 11. Mär 2004 16:51

Re: Programm als Dienst
 
@Sakura
Jein, ich musste vorhin weg, habe es mir gerade mal angeschaut! Steige momentan noch nicht ganz durch das OnTimer Ereignis, aber das kriege ich auch noch hin. Dürfte doch kein Problem sein das so umzuschreiben, dass er nur die Uhrzeit abfragt!

Vielen Dank nochmal!

Gruß Matt

EDIT:
Hattest Du das eigentlich fertig? Oder in der kurzen Zeit gemacht? Frage nur weil ja alles auf Download gemünzt ist, mir reicht ja der reine Aufruf!


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:07 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