AW: auf Datumsänderung reagieren
Zitat:
...herausfinden, wenn die Systemzeit geändert wurde? |
AW: auf Datumsänderung reagieren
Zitat:
Nicht, wenn sich das Datum ändert, weil ein neuer Tag beginnt. |
AW: auf Datumsänderung reagieren
Gerade getestet.
Manuell, aber nicht über den Windows-Dialog. Also dasselbe wie eine automatisierte Änderung ( :?: ) :
Delphi-Quellcode:
procedure SetDateTime(Year, Month, Day, Hour, Minu, Sec, MSec: Word);
var NewDateTime: TSystemTime; begin FillChar(NewDateTime, SizeOf(NewDateTime), #0); NewDateTime.wYear := Year; NewDateTime.wMonth := Month; NewDateTime.wDay := Day; NewDateTime.wHour := Hour; NewDateTime.wMinute := Minu; NewDateTime.wSecond := Sec; NewDateTime.wMilliseconds := MSec; SetLocalTime(NewDateTime); end; SetDateTime(2017, 04, 30, 12,13,14,00); |
AW: auf Datumsänderung reagieren
Ja Helmi
die Windowsmessage WM_TIMECHANGE wird immer dann gefeuert, wenn an der Systemzeit geschraubt wird. Du kannst es auch leicht testen. Knall ein TApplicationEvents auf ein Form, wähle ApplicationEvents1.OnMessage und ergänze:
Delphi-Quellcode:
...und nun änderst du die Zeit auf deinem Compi. Dein Programm meldet sich mit "Aber Hallo".
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean); begin if Msg.message = WM_TIMECHANGE then begin ShowMessage( 'Aber Hallo' ); Handled := true; end; end; WM_TIMECHANGE hilft dir also nix. Wie erwähnt: In Extremis könntest du einen Timer mit Intervall round((1-frac(now))*24*60*60*1000) starten und würdest so benachrichtigt, wenn ein neuer Tag beginnt. Problem gelöst mit einem Einzeiler. [Wenn du dem Zeitmesser auf deiner Kiste nicht traust, dann kannst du ja häufiger checken :-D.] |
AW: auf Datumsänderung reagieren
Zitat:
Zitat:
|
AW: auf Datumsänderung reagieren
OK, ich klink mich hier mal aus :-D.
1 Ich verstehe Helmi so, dass das Programm reagieren soll, wenn ein neuer Tag beginnt. 2 Wenn Helmi jedoch darauf reagieren will, wenn jemand die Systemzeit ändert (ich glaube nicht), dann ist natürlich WM_TIMECHANGE genau richtig. Und wenn Helmi zwar nach 1 sucht und 2 dennoch einbauen möchte: Man könnte das Programm das TimerIntervall neu berechnen lassen, wenn WM_TIMECHANGE empfangen wird. Ich bin dann mal raus... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:24 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