質問

イベント(MS WindowsのPython + Tkinter)をシステムの日付変更にバインドすることが可能かどうか(そして可能であれば、どのように)誰もが知っていますか?

たまに.afterイベントをチェックできることがわかっています。システムの日付/時刻が変更されるたびに、自動(夏時間など)または手動でイベントを発生させることができるかどうかを尋ねています。

MS Windowsはそのようなイベントをアプリケーションに送信し、Tkinterはそれらを受信します。 .afterタイマーが待機しており、タイマーの有効期限が切れた後に日付/時刻を設定すると、タイマーイベントが即座に発生するためです。

役に立ちましたか?

解決

  

.afterタイマーが待機しており、タイマーの有効期限が切れた後に日付/時刻を設定した場合、タイマーイベントが即座に発生するためです。

これは、Tkinter(またはTk)がイベントループの一部としてシステムクロックをポーリングして、タイマーを実行するタイミングを判断していることを意味する可能性があります。

Windowsを使用している場合、Mark Hammondの本は、win32evtlogutilモジュールを使用してWindowsイベントログの変更に応答できると述べています。基本的には次のように動作します:

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

ただし、イベントレコードの構造に関するドキュメントを入手する必要があります(章全体を入力する気はありません。すみません:-))。とにかく、イベントログで日付の変更が表示されるかどうかもわかりません。

しかし、本当に、システムクロックをポーリングするのは本当に悪いことですか?これは最も簡単なように思えますが、それほどあなたを遅くすることはないと思います。

(最後に、あなたの国については知りませんが、ここニュージーランドでは、夏時間は日付の変更を含みません;時間の変更のみ(午前2時から午前3時、またはその逆))

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top