Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

System date   Найти похожие ветки 

 
NorthMan ©   (2004-07-23 11:54) [0]

Программа висит круглосуточно и необходимо определять изменение даты. Есть ли в системе сообщение типа WM_TIMECHANGE?


 
Anatoly Podgoretsky ©   (2004-07-23 11:57) [1]

Есть


 
NorthMan ©   (2004-07-23 12:05) [2]

Поделитесь...


 
y-soft ©   (2004-07-23 12:08) [3]

WM_TIMECHANGE
An application sends the WM_TIMECHANGE message whenever it updates the system time.

To send this message, call the SendMessage function with the following parameters.

SendMessage(
 (HWND) hWnd,             // handle to destination window
 WM_TIMECHANGE,           // message to send
 (WPARAM) wParam,         // not used; must be zero
 (LPARAM) lParam          // not used; must be zero
);
Parameters
This message has no parameters.

Return Values
An application should return zero if it processes this message.

Remarks
To send this message to all top-level windows, an application can use the SendMessage function with the hWnd parameter set to HWND_TOPMOST.

Windows 2000/XP: An application should not broadcast this message, because the system will broadcast this message when the application changes the system time.

Windows NT 4.0 and earlier: An application should send this message to all top-level windows after changing the system time.

Windows 95/98/Me: An application should send this message to all top-level windows after changing the system time.

Requirements
 Windows NT/2000/XP: Included in Windows NT 3.1 and later.
 Windows 95/98/Me: Included in Windows 95 and later.
 Header: Declared in Winuser.h; include Windows.h.

See Also
Time Overview, Time Messages, SendMessage


 
NorthMan ©   (2004-07-23 13:49) [4]

Все это понятно, но дело в том, что моя программа должна пассивно "слушать" систему на предмет смены даты
WM_TIMECHANGE, а не менять ее. Как я понимаю, WM_TIMECHANGE возникает, когда какая-то программа меняет дату/время, а не сама система?


 
Anatoly Podgoretsky ©   (2004-07-23 13:56) [5]

Есть такая щтука, называется таймер, можещь выбрать любой интервал и по срабатыванию проверяй на предмет изменения даты


 
y-soft ©   (2004-07-23 14:03) [6]

>NorthMan ©   (23.07.04 13:49) [4]

Правильно понимаете

Лучше вместо того, чтобы ждать, когда кто-то добренький может быть пошлет WM_TIMECHANGE (к тому же: где гарантия, что это произойдет именно при смене даты? :) ), запустить собственную ловушку.

Лучше всего использовать WaitableTimer, запущенный в отдельном потоке. Для этого таймера при запуске установить первое срабатывание на начало следующих суток, а период - 24 часа.
И ждать срабатывания с помощью WaitFotSingleObject...

При срабатывании можно проверить на всякий случай системную дату и послать уведомление первичному потоку через Synchronize или еще каким-либо способом...

Такая ловушка очень точна и практически не потребляет системных ресурсов...



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.026 c
1-1092813867
race1
2004-08-18 11:24
2004.09.05
tmediaplayer


1-1093002157
MaXie
2004-08-20 15:42
2004.09.05
Из жизни потоков2


1-1093079823
far
2004-08-21 13:17
2004.09.05
Проблема с фиксингом глобальных ссылок при десериализации формы


14-1092753085
Ardagast
2004-08-17 18:31
2004.09.05
Сменить иконку любой программы на свою


6-1088704608
Vladimir_v
2004-07-01 21:56
2004.09.05
Socket Error # 10054





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский