Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сообщение Windows о смене суток [D7, WinXP]


Страницы:   1 2 3

Jetus ©   (2007-06-11 12:24:00) 

Здравствуйте!

Как отловить момент смены суток в Windows?


Eraser   (2007-06-17 17:22:00) [21]

> [36] Углук ©   (17.06.07 16:24)


> Ваш  способ предполагает каждую минуту операции проверки
> времени.
> Это значит, Вы не пытаетесь писать оптимальные программы,
> а пишете "в лоб".

ну ну..

нужно писАть так, чтобы надежно было, как AK47, проверка времени каждую минуту занимает настолько мизерное количесвто ресурсов, что его можно смело приравнять к 0.
А всякие фокусы с вычислением каких-то интервалов и перехватом WM_TIMECHANGE внисут неразбериху, в казалось бы, простейшую задачу..


Углук   (2007-06-17 16:24:00) [22]

2homm,
[I] скал чушь [/I]
Да не уж то?

Мой способ один раз вычисляет временную разницу, переводит в микросекунды, и преспокойно устанавливает её в интервал таймера- после запуска программы, - а после первого срабатывания OnTimer просто ставит число из [11]  для определения смены суток. До срабатывания таймера приложение висит себе в памяти, и никому( кроме настырных юзеров) не мешает, процессорных ресурсов не занимает.

Ваш  способ предполагает каждую минуту операции проверки времени.
Это значит, Вы не пытаетесь писать оптимальные программы, а пишете "в лоб". И поэтому мне как-то фиолетово, + или - Вы изволили присудить мне в качестве своей оценки


WaitableTimer   (2007-06-16 14:58:00) [23]


> Anatoly Podgoretsky ©   (16.06.07 12:16) [33]
> А что такое смена суток?

Согласен, задача недостаточно формализована. Поэтому и ответил в рамках того, как понял.


Anatoly Podgoretsky   (2007-06-16 12:20:00) [24]


> Отчего же преступник? Он просто время поменял :)

Против подобных преступников есть WM_TIMECHANGE
А для обычных пользователей операция вычитания


Anatoly Podgoretsky   (2007-06-16 12:16:00) [25]

> WaitableTimer  (16.06.2007 10:32:32)  [32]

А что такое смена суток?


WaitableTimer   (2007-06-16 10:32:00) [26]

Вопрос:

> Германн ©   (16.06.07 03:33) [31]
> А, собс-но какая задача тут была озвучена?
> Никакой задачи и не было!


Ответ:

> Jetus ©   (11.06.07 12:24)  
> Как отловить момент смены суток в Windows?


Германн   (2007-06-16 03:33:00) [27]


> WaitableTimer   (15.06.07 19:15) [29]
>
...
> Думаю, это не та задача, решение которой было нужно вначале.
>

А, собс-но какая задача тут была озвучена?
Никакой задачи и не было!


Джо   (2007-06-16 03:05:00) [28]

> [29] WaitableTimer   (15.06.07 19:15)
> Вы предполагаете, что пользователь - преступник, и хотите
> это побороть.

Отчего же преступник? Он просто время поменял :)


WaitableTimer   (2007-06-15 19:15:00) [29]


> ... в другой часовой пояс самолет улетел?

Используется UTC-time.


> а если василий пупкин время поменял на компе...


Ничто не спасет кроме постоянного мониторинга. Можно хук на системный вызов поставить, но время можно и через BIOS поменять...

Думаю, это не та задача, решение которой было нужно вначале.
Вы предполагаете, что пользователь - преступник, и хотите это побороть.
Если да, то переформулируйте задачу.


Anatoly Podgoretsky   (2007-06-15 19:08:00) [30]

> Eraser  (15.06.2007 17:07:25)  [25]

Без разницы какой интервал, нет никакой необходимости делать это каждую минуту, результат будет абсолютно одинаков.


Eraser   (2007-06-15 19:04:00) [31]

> [26] WaitableTimer   (15.06.07 18:24)

а если василий пупкин время поменял на компе, или в другой часовой пояс самолет улетел?


WaitableTimer   (2007-06-15 18:24:00) [32]

Ребята, ну о чем тут такой долгий спор?
Разве никто не слышал о Waitable Timers?
Создал, установил на ближайшую полночь и не паришься, ждешь event'а...
(Работает, начиная с Windows 98 / NT 4.0 .)


Eraser   (2007-06-15 17:07:00) [33]

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


homm   (2007-06-15 16:45:00) [34]

> Вроде бы это ты не можешь

Это Вы привели мой ответ на реплику «Запускать в 00:00 слабо?». Тогда как Вам угодно. Человек скал чушь,а чего там имел ввиду, чего считать, чего не считать не мое дело.


Anatoly Podgoretsky   (2007-06-15 16:10:00) [35]

> homm  (15.06.2007 13:40:22)  [22]

Вроде бы это ты не можешь

> Ага, когда я буду знать что сейчас 00:00, будет не слабо. Предлагаешь это дело на пользователя переложить?


homm   (2007-06-15 13:40:00) [36]

> Программист в состояние пользоваться операциями сложения
> и вычитания!!!

Это к чему? Я в курсе таких операций, потому и предложил в [4] «Один раз проверить и поставить таймер на нужное время». А вот автор 11-го поста не в курсе.


Anatoly Podgoretsky   (2007-06-15 13:37:00) [37]

> tesseract  (15.06.2007 12:21:17)  [17]

Ну и что, нужна ли высокая точность для определения сего факта?


Anatoly Podgoretsky   (2007-06-15 13:36:00) [38]

> keymaster  (15.06.2007 12:24:18)  [18]

Лучше несколько


Anatoly Podgoretsky   (2007-06-15 13:36:00) [39]

> homm  (15.06.2007 10:20:16)  [16]

Программист в состояние пользоваться операциями сложения и вычитания!!!


keymaster   (2007-06-15 12:24:00) [40]


> Углук ©   (15.06.07 02:10) [15]
>  После первого срабатывания изменить интервал таймера на
> указанное мной число.

При таком подходе программа должна работать сутки...


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо