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/)
-   -   Benachrichtigung zu bestimmtem Datum/Uhrzeit (https://www.delphipraxis.net/211513-benachrichtigung-zu-bestimmtem-datum-uhrzeit.html)

TurboMagic 27. Sep 2022 08:20

Benachrichtigung zu bestimmtem Datum/Uhrzeit
 
Hallo,

gibt's eigentlich in Windows ein API mittels dem man bei Erreichen eines
bestimmten Datums/Uhrzeit eine Art Event/Message auslösen lassen kann?

Grüße
TurboMagic

MyRealName 27. Sep 2022 08:37

AW: Benachrichtigung zu bestimmtem Datum/Uhrzeit
 
Es gibt/gab den Task Scheduler in Windows, da kannst Dich ja eintragen, der sollte dich dann zu einer gewissen Uhrzeit starten

TiGü 27. Sep 2022 08:44

AW: Benachrichtigung zu bestimmtem Datum/Uhrzeit
 
Mit der Hand:
https://www.computerbild.de/artikel/...-30075153.html

Per Code:
https://learn.microsoft.com/en-us/wi...ler-start-page

TurboMagic 28. Sep 2022 09:20

AW: Benachrichtigung zu bestimmtem Datum/Uhrzeit
 
Danke für diese Links, nur scheint mir das noch nicht so ganz das wahre zu sein.
Ich will ja nicht eine EXE-Datei oder so starten sondern einfach nur einen Callback oder
eine Message bekommen...

Die Idee mit dem Taskplaner scheint mir eher "schwergewichtig" und nicht so gut in eine
laufende Anwendung zu integrieren. Ja, ich könnte eine EXE mit einem Parameter oder so
starten lassen welche mir dann auf irgend einem Weg mitteilt, dass das Event signalisiert
wurde, aber ich finde das halt etwas "schwergewichtig" für den Zweck.

Grüße
TurboMagic

dummzeuch 28. Sep 2022 09:40

AW: Benachrichtigung zu bestimmtem Datum/Uhrzeit
 
Zitat:

Zitat von TurboMagic (Beitrag 1512563)
Danke für diese Links, nur scheint mir das noch nicht so ganz das wahre zu sein.

Wenn es nur um einen einzelnen Event geht: Einen Thread starten und mit Sleep lange genug schlafen lassen. Wenn er aufwacht, per Synchronise den Event aufrufen.

Oder alternativ für mehrere Einträge immer per Sleep die minimale Zeit warten, dann prüfen, ob es einen passenden Eintrag gibt, diesen ausführen und wieder Sleep aufrufen.

Ich frage mich gerade, ob es dafür nicht längst eine Bibliothek/Komponente gibt. So kompliziert ist das ja nicht, insbesondere, wenn es nicht auf hohe Genauigkeit ankommt.

Ich hatte vor vielen Jahren mal eine Scheduler für OS/2 (mit Virtual Pascal) geschrieben, der auf diese Weise arbeitete (aber dann ebenfalls externe Programme aufrief). Es war Shareware und wurde nach dem Feedback, das ich indirekt bekommen habe, durchaus mehrfach benutzt. Bezahlt hat niemand...

himitsu 28. Sep 2022 11:50

AW: Benachrichtigung zu bestimmtem Datum/Uhrzeit
 
Oder ansatt Thread+Sleep einen Timer (mit der mindestzeit bis zum Nächsten) oder mehrere Timer. :stupid:

Man kann aber auch die Aufgabenplanung von Windows dafür benutzen (wenn es mehr als nur ein paar Sekunden/Minuten sind)

Und natürlich kann die Notification-API auch sowas ... theoretisch, wenn die Delphi-Komponente vollständig implementiert und funktionsfähig wäre :roll:
https://www.delphipraxis.net/211470-...ckt-wurde.html

MyRealName 28. Sep 2022 13:01

AW: Benachrichtigung zu bestimmtem Datum/Uhrzeit
 
Oder den Timer jede 10 Sekunden (oder minute oder Sekunde, je nach gewünschter Auflösung) zuschlagen lassen und schauen, ob es schon soweit ist...

TurboMagic 28. Sep 2022 13:14

AW: Benachrichtigung zu bestimmtem Datum/Uhrzeit
 
Hallo,

danke für die weiteren Ideen. Das mit dem Timer war mir auch schon klar, dass das geht.
Die Frage war halt auch, was am wenigsten verschwenderisch mit den HW/SW Ressourcen umgeht.

Evtl. ist das sogar der Timer, da dieser im eigenen Programm läuft oder der Thread/Task mit
einem lang genugen sleep.

Grüße
TurboMagic

Delphi.Narium 28. Sep 2022 14:08

AW: Benachrichtigung zu bestimmtem Datum/Uhrzeit
 
Timer nehmen und das Intervall auf die Zeit in Millisekunden setzen, die zwischen Now und dem ersten zu meldenden Termin liegt.

Da werden (fast) keine Resourcen verbraten und der "Auslösefehler" liegt im Bereich um eine Millisekunde herum.

Und das dann in 'ner Schleife immer zwischen dem aktuellen Now und dem nächsten Termin, bis keine Termine mehr da sind.

jaenicke 28. Sep 2022 14:53

AW: Benachrichtigung zu bestimmtem Datum/Uhrzeit
 
WaitForSingleObject in einem Thread sollte auch recht ressourcenschonend sein. Das hat den Vorteil, dass man auch längere Zeit quasi schlafen kann, aber trotzdem zum Beenden des Threads ein entsprechendes Event signalisieren und den Wartezyklus so abbrechen kann.

Man sollte nur bedenken, dass es auch Ruhezustand und Standby gibt. Je nachdem wie man das ganze umsetzt, muss man das ggf. beachten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz