Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Cronjobs in Delphi (https://www.delphipraxis.net/163846-cronjobs-delphi.html)

buddyman83 18. Okt 2011 16:55

Cronjobs in Delphi
 
Hi,

benutze Delphi 2010 und suche für mein Programm eine Cronjob-Komponente.
Damit soll der Anwender festlegen können, wann eine bestimmte Prozedur, NICHT ein externes Programm ausgeführt werden soll.
Also z.b. jeden Jeden Montag um 8:00 Uhr.

Gefunden habe ich die Appcontrols von Utilmind, aber die werden scheinbar nicht mehr gepflegt und lassen sich auch nicht in 2010 installieren.

Kennt jemand Alternativen?

LG

geskill 18. Okt 2011 17:02

AW: Cronjobs in Delphi
 
Mein erster Ansatz wäre den Windows Task Scheduler zu benutzen und dann das Programm mit einem Parameter zu starten (oneinstance).

Das Programm kann auch die ganze Zeit laufen und prüfen ob ein bestimmtes Datum eingetroffen ist.

Die beste Lösung wird sein, ein Dienst/Services zu erstellen.

Willkommen in der DB :-D

:dp:

DeddyH 18. Okt 2011 17:06

AW: Cronjobs in Delphi
 
[OT]
Zitat:

Zitat von geskill (Beitrag 1131104)
Willkommen in der DB :-D

Du kleiner Trigger Du :mrgreen: :duck: [/OT]

Klaus01 18. Okt 2011 21:06

AW: Cronjobs in Delphi
 
Guten Abend,

das ist auch über einen Timer machbar.

Timer schaut in eine Liste, wann die nächste Aufgabe zu erledigen ist.
Das Timerinterval wird angepasst.
Beim nächsten Auslösen des Timers wird die Aufgabe ausgeführt.

Grüße
Klaus

SvB 19. Okt 2011 07:01

AW: Cronjobs in Delphi
 
Ich benutze für so etwas "JvScheduledEvents" aus der JVCL

Per Code ist das etwas Tricky (hatte bei mir einige Zeit gedauert, bis ich es rausgefunden hatte) und sieht bei mir z.B. so aus:
Delphi-Quellcode:
with JvScheduledEvents.Events.Add do begin
  Name := 'EveryMondyAt8';
  Schedule.RecurringType := srkWeekly;
  Schedule.StartDate := DateTimeToTimeStamp(now());
  Schedule.EndType := sekNone;
  (Schedule as IJclWeeklySchedule).DaysOfWeek := [swdMonday];
  (Schedule as IJclWeeklySchedule).Interval := 1;
  (Schedule as IJclScheduleDayFrequency).StartTime := MilliSecondOfTheDay(StrToTime('08:00:00'));
  (Schedule as IJclScheduleDayFrequency).EndTime := MilliSecondOfTheDay(StrToTime('08:00:00'));
  (Schedule as IJclScheduleDayFrequency).Interval := 1;
  OnExecute := ScheduleEvent;
end;
und hier das Event:
Delphi-Quellcode:
procedure ScheduleEvent(Sender: TJvEventCollectionItem; const IsSnoozeEvent: Boolean);
begin
  if TJvEventCollectionItem(Sender).Name = 'EveryMondyAt8' then begin
    MachIrgendWas();
  end;
end;

buddyman83 19. Okt 2011 11:58

AW: Cronjobs in Delphi
 
Zitat:

Ich benutze für so etwas "JvScheduledEvents" aus der JVCL
Vielen Dank für den Tip mit JVCL, der war Gold wert :thumb:


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