Question

Quelqu'un sait-il s'il est possible (et si oui, comment) de lier un événement (Python + Tkinter sous MS Windows) à un changement de date système?

Je sais que je peux faire en sorte que les événements .after vérifient de temps en temps; Je me demande si un événement peut être déclenché chaque fois que la date / l'heure du système change, soit automatiquement (par exemple, pour l'heure d'été) ou manuellement.

MS Windows envoie de tels événements aux applications et Tkinter les reçoit; Je sais, car si j'ai un minuteur .after en attente et que je règle la date et l'heure après l'expiration du minuteur, l'événement du minuteur se déclenche instantanément.

Était-ce utile?

La solution

  

Je sais, car si j'ai un minuteur .after en attente et que je règle la date et l'heure après l'expiration du minuteur, l'événement du minuteur se déclenche instantanément.

Cela pourrait simplement signifier que Tkinter (ou Tk) interroge l'horloge système dans le cadre de la boucle d'événements pour déterminer quand exécuter les minuteries.

Si vous utilisez Windows, le livre de Mark Hammond indique que vous pouvez utiliser le module win32evtlogutil pour répondre aux modifications apportées au journal des événements Windows. En gros, cela fonctionne comme ceci:

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

Mais vous aurez besoin de documenter la structure des enregistrements d’événement (je n’ai pas envie de taper tout le chapitre, désolé :-)). De plus, je ne sais pas si les changements de date apparaissent de toute façon dans le journal des événements.

Vraiment, est-il si mauvais de simplement interroger l'horloge système? Cela semble plus facile et je ne pense pas que cela vous ralentirait beaucoup.

(enfin, un commentaire: je ne connais pas votre pays, mais ici, en Nouvelle-Zélande, l'heure d'été n'entraîne aucun changement de date; seule l'heure change (de 2 heures à 3 heures du matin ou inversement))

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top