Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.25;
Скачать: CL | DM;

Вниз

КАК можно определить Изменение Системного времени   Найти похожие ветки 

 
cdaDmitriy ©   (2002-05-01 14:45) [0]

О WM_TIMECHANGE можно не говорить Я знаю но Мне
НУЖНО НА СКОЛЬКО ИЗМЕНИЛОСЬ ВРЕМЯ

procedure WMTimeChange(var Message: TMessage); message WM_TIMECHANGE;

procedure TForm1.WMTimeChange(var Message: TMessage); begin
Inc(Count);
Label1.Caption:="Change Time "+IntTostr(Count);
Label2.Caption:=INTTOSTR(Message.WParam)+" "+INTTOSTR(Message.lParam);
inherited;
endж


 
cdaDmitriy ©   (2002-05-02 08:46) [1]

?????


 
Ka$per   (2002-05-02 10:07) [2]

вообще, вопрос не совсем понятен
попробуй так:

var d:TDateTime;
.....
d:=Now;
......
d:=Now-d;

d - разница между вызовами в сутках,
остается только перевести в минуты(секунды, и т.д.)


 
cdaDmitriy ©   (2002-05-02 11:17) [3]

An application sends the WM_TIMECHANGE message to all top-level windows after changing the system time.


Приложение посылает WM_TIMECHANGE сообщение всем окнам верхнего уровня после изменения(замены) системного времени.

Но это что прошло изменение А МНЕ НУЖНО НА СКОЛЬКО

Например было 10:23:34 юзер поменял на 11:23:34

Мне после изменения нужно получить D=1 час


 
Dima-k17 ©   (2002-05-02 12:56) [4]

Точно не понял, но по-моему здесь лежала информация о том, как из одного времени вычесть другое. Если ее найти, то придется постоянно мониторить проверяя текущее время. А после того, как произошло изменение поймать ставшее время и после этого из 1-го вычесть 2-е.


 
JC   (2002-05-02 16:15) [5]

Попробуй через каждое n-ное время(1 сек) получать текущее, а потом сравнивай если изменилось больше чем на n, то вычисляй
D= [текущее вр.]-[последнее запомненное]-n...


 
cdaDmitriy ©   (2002-05-05 11:32) [6]

Может есть еще что нибудь ????


 
anod ©   (2002-05-05 16:55) [7]

А что в wParam и lParam лежит?


 
Набережных С.   (2002-05-05 18:15) [8]

Видимо, можно при запуске программы делать:
TC:=GetTickCount;
Dt:=Now;
А при получении сообщения использовать их для вычисления изменения. Чтобы исключить возможность переполнения, можно обновлять переменные, скажем, каждые 10 часов, или 10 дней, или ...


 
cdaDmitriy ©   (2002-05-06 08:42) [9]

> anod ©

An application sends the WM_TIMECHANGE message to all top-level windows after changing the system time.

WM_TIMECHANGE
wParam = 0; // not used, must be zero
lParam = 0; // not used, must be zero


Вешать обработчик на Таймер не хотелось бы

Может есть еще что нибудь ????

ВОПРОС ОЧЕНЬ КРИТИЧЕН ЗАКАЗЧИК УТВЕРЖДАЕТ ЧТО НЕ МЕНЯЕТ
ВРЕМЯ А Я ДУМАЮ (САБОТАЖ)


 
leshy   (2002-05-06 09:35) [10]

Если пользователь меняет время вручную, то есть сам при помощи мышки, приложение будет терять фокус. Почему бы не использовать события потери/получения фокуса для запуска/остановки контроля времени?


 
cdaDmitriy ©   (2002-05-06 09:59) [11]

> leshy

Апликация очень большая ~ 100 окон и в каждом контролы

отследить события потери/получения фокуса сложно

кроме того Апликация работает не всегда

нужна маленькая прог, для логера изменения времени


 
Cobalt ©   (2002-05-07 05:41) [12]

Совершенно согласен с Набережных С. (05.05.02 18:15)
Запоминай GetTickCount и текущую дату при загрузке.
Когда ловишь WM_TIMECHANGE , сравнивай (разницу между GetTickCount и запомненым) и с разницей между текущей датой и запомненой (переводи в мс). Если разница >1 минуты, то это означает мухлёж.

А логер... А что логер? Почти то же самое.
Призагрузке <повтор>
Когда ловишь WM_TIMECHANGE, записываешь новое время(которое было установлено), и то, которое должно быть по твоим выкладкам(т.е. разница в TickCount переводится в сек/мин/часы/дни + сохраненная дата). Это все шифруется как-нить (чтоб в текстовом ред-ре не было видно), и говорится заказчику, что она, якобы, ведет запись результатов некоторых внутренних процессов.



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

Текущий архив: 2002.07.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
3-81184
den-log
2002-07-04 16:10
2002.07.25
Необходимо создать таблицу MSAccess


1-81287
vixic
2002-07-12 07:47
2002.07.25
MainMenu


1-81214
Andy BitOff
2002-07-04 19:24
2002.07.25
Незнаю как сделать!!!!


1-81251
vanek
2002-07-14 18:56
2002.07.25
проги,проги,проги


1-81219
Vlad Schekunov
2002-07-14 06:05
2002.07.25
Разность между датами