![]() |
Dienst, Service oder was? (D 2009 Prof)
Hallo zusammen,
ich möchte täglich/stündlich eine php-WebSite abrufen und auf einen bestimmten Inhalt (enthaltenen Text) prüfen. Mit einem Formular und WebBrowser könnte ich das lösen. Ich möchte das aber gern mit einemm Dienst im Hintergrund realisieren, finde aber passenden Informationen. Die Fragen sind: Wie kann ich solch einen Dienst erstellen und automatisch täglich starten? Wie kann ich damit eine php-Seite als Text abholen? Danke Stahli |
AW: Dienst, Service oder was? (D 2009 Prof)
Du kannst einen Dienst nehmen oder einfach auch in Windows eine wiedergehrende Aufgabe eintragen und dort dein Programm entsprechend Starten lassen.
|
AW: Dienst, Service oder was? (D 2009 Prof)
Gibt es ein Tutorial, wie man so einen Windowsdienst erstellt und automatisch starten lässt? Ich finde keinen Einstieg dazu.
|
AW: Dienst, Service oder was? (D 2009 Prof)
Und warum muss es unbedingt ein Dienst sein? Reicht nicht ein Programm im Autostart?
|
AW: Dienst, Service oder was? (D 2009 Prof)
Es sollte halt unauffällig im Hintergrund laufen und vor allem wollte ich mich mit dem Thema einmal beschäftigen.
Ich dachte, das wäre gut lösbar, ich habe nur eben keinen Ansatz gefunden, wie... Ich habe mal testweise eine "Service-Anwendung" erstellt, die jede Sekunde einen Beep erzeugt, weiß aber schon nicht, ob das der richtige Weg ist und wie man diesen "Dienst" im Windows automatisch im Hintergrund laufen lässt... |
AW: Dienst, Service oder was? (D 2009 Prof)
Und warum darf der Benutzer nicht wissen, dass da was im Hintergrund läuft?
Der Dienst muss vom Administrator installiert werden und der Starttyp auf automatisch stehen,m dann wird er bei jedem Windowsstart mit gestartet. Und ich weiß nicht, wie du suchst, aber ![]() |
AW: Dienst, Service oder was? (D 2009 Prof)
Zitat:
|
AW: Dienst, Service oder was? (D 2009 Prof)
Ok, danke erst mal für die Hilfen.
Momentan kriege ich wohl nicht mal das googeln richtig hin ;-( Ich werde mal ein bischen testen... |
AW: Dienst, Service oder was? (D 2009 Prof)
Ich komme noch nicht klar damit und finde auch im Netz sehr Widersprüchliches :-(
Vielleicht können wir das ja mal hier Stück für Stück nachvollziehbar aufarbeiten:
Delphi-Quellcode:
Wenn ich den Dienst in der Dos-Box mit "ju /install" installiere, erhalte ich eine MessageBox "Service erfolgreich installiert". Jede Sekunde beept der Service erwartungsgemäß.
unit sju;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, ExtCtrls; type TServiceJu = class(TService) Timer1: TTimer; procedure ServiceExecute(Sender: TService); procedure Timer1Timer(Sender: TObject); private { Private-Deklarationen } public function GetServiceController: TServiceController; override; { Public-Deklarationen } end; var ServiceJu: TServiceJu; implementation {$R *.DFM} procedure ServiceController(CtrlCode: DWord); stdcall; begin ServiceJu.Controller(CtrlCode); end; function TServiceJu.GetServiceController: TServiceController; begin Result := ServiceController; end; procedure TServiceJu.ServiceExecute(Sender: TService); begin Timer1.Enabled := True; while not Terminated do ServiceThread.ProcessRequests(False); // or True Timer1.Enabled := False; end; procedure TServiceJu.Timer1Timer(Sender: TObject); begin Beep; end; end. Wenn ich die Meldung schließe, beept nix mehr. Der Dienst läuft (wie man in der Systemüberwachung sieht) nach der Installation nicht automatisch. Wenn ich ihn starte, ist keine Reaktion ersichtlich (es beept nichts). Wenn ich den Dienst mit "ju /uninstall" deinstalliere, erhalte ich eine MessageBox "Service erfolgreich deinstalliert". Jede Sekunde beept der Service wieder. Wenn ich die Meldung schließe, beept nix mehr. Ersetze ich das False im "ServiceThread.ProcessRequests(False);" durch True sind keine Änderungen zu bemerken. Der Service ist auf "interactiv" gesetzt Wenn ich den Timer entferne und ServiceExecute ändere in
Delphi-Quellcode:
erhalte ich zu keinem Zeitpunkt einen Beep.
while not Terminated do
begin ServiceThread.ProcessRequests(False); Beep; Sleep(500); end; Was mache ich falsch? |
AW: Dienst, Service oder was? (D 2009 Prof)
Wenn das Programm nur jede Stunde arbeiten soll, dann ist ja eigentlich kein Dienst erforderlich.
Die restliche Zeit würde das Programm nur auf "der faulen Haut" liegen und Resourcen verbrauchen. Ich würde daher eine normale Anwendung zeitgesteuert mit dem Taskplaner starten. Den Taskplaner kann man über TASKSCHD.MSC konfigurieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 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