Frage

Wer weiß, ob es möglich ist, (und wenn ja, wie) ein Ereignis (Python + Tkinter auf MS Windows) zu einem Systemdatum ändern zu binden?

Ich weiß, ich kann .after Ereignisse haben hin und wieder überprüft; Ich frage, ob ich irgendwie ein Ereignis, wenn Datum / Zeit ändert das System fired haben kann, entweder automatisch (beispielsweise für die Sommerzeit) oder manuell erfolgen.

MS Windows sendet solche Ereignisse zu Anwendungen und Tkinter erhält sie; Ich weiß, weil, wenn ich eine .after Timer Warte habe und ich das Datum / Zeit nach Ablauf des Timers eingestellt, das Timer-Ereignis ausgelöst sofort.

War es hilfreich?

Lösung

  

Ich weiß, weil, wenn ich eine .after Timer Warte habe und ich das Datum / Zeit nach Ablauf des Timers eingestellt, das Timer-Ereignis ausgelöst sofort.

Das könnte nur bedeuten, dass Tkinter (oder Tk) ist die Abfrage des Systemtakts als Teil der Ereignisschleife, um herauszufinden, wenn Timer laufen.

Wenn Sie Windows verwenden, Mark Hammond Buch stellt fest, dass Sie das win32evtlogutil Modul auf Änderungen in der Windows-Ereignisprotokoll reagieren können. Im Grunde funktioniert es wie folgt aus:

import win32evtlogutil
def onEvent(record):
  # Do something with the event log record
win32evtlogutil.FeedEventLogRecords(onEvent)

Aber Sie benötigen Dokumente erhalten über die Struktur der Ereignisaufzeichnungen (Ich fühle mich nicht wie das ganze Kapitel eingeben aus, sorry :-)). Ich weiß nicht, auch wenn das Datum Änderungen ohnehin im Ereignisprotokoll auftauchen.

Wirklich, aber ist es so schlimm, nur die Systemuhr abfragen? Es scheint am einfachsten und ich glaube nicht, dass Sie nach unten viel verlangsamen würde.

(schließlich ein Kommentar: Ich weiß nicht, über Ihr Land, aber hier in NZ, Sommer beinhaltet keine Änderung Datum, nur die Zeit ändert (von 02.00 Uhr bis 03.00 Uhr, oder umgekehrt))

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top