2008-10-01 2 views
0

Кто-нибудь знает, возможно ли (и если да, как) связать событие (Python + Tkinter в MS Windows) с изменением даты системы?Уведомление об изменении даты в приложении Tkinter (win32)

Я знаю, что может быть. После событий, проверяющих время от времени; Я спрашиваю, могу ли я как-нибудь запустить событие, когда системная дата/время изменяется, либо автоматически (например, для летнего времени), либо вручную.

MS Windows отправляет такие события в приложения, и Tkinter их принимает; Я знаю, потому что, если у меня есть .after таймер ожидания, и я установил дату/время после истечения срока действия таймера, событие таймера запускается мгновенно.

ответ

1

Я знаю, потому что, если у меня есть .after таймер ожидания, и я установил дату/время после истечения срока действия таймера, событие таймера запускается мгновенно.

Это может означать, что Tkinter (или Tk) производит опрос системных часов как часть цикла событий, чтобы выяснить, когда запускать таймеры.

Если вы используете Windows, в примечаниях Марка Хэммонда вы можете использовать модуль win32evtlogutil для ответа на изменения в журнале событий Windows. В основном это работает так:

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

Но вы должны получить документы о структуре записей событий (я не чувствую, что печатала целую главу, извините :-)). Также я не знаю, будет ли изменение даты в журнале событий в любом случае.

Действительно, правда, так плохо, чтобы просто опросить системные часы? Это кажется простым, и я не думаю, что это сильно затормозило бы вас.

(наконец, комментарий: я не знаю о вашей стране, но здесь, в Новой Зеландии, переход на летнее время не предполагает изменения даты, только изменение времени (с 2 утра до 3 утра или наоборот))

+0

Здесь также изменяется только время для DST/не-DST; Я забочусь о _any_ изменении системных часов, будь то настройка времени или изменение даты. Я проверю, не был ли я достаточно ясен в своей формулировке вопроса. Спасибо за Ваш ответ. – tzot 2008-10-02 07:44:03

 Смежные вопросы

  • Нет связанных вопросов^_^