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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
3-81127
DKalinin
2002-07-03 11:53
2002.07.25
Как установить таймаут для ADOStoredProc?


1-81280
Explorer
2002-07-12 15:30
2002.07.25
Childs окна


1-81327
SemFLY
2002-07-12 18:23
2002.07.25
Как вызвать ?


3-81162
IvanovSergey
2002-07-03 13:32
2002.07.25
Округление в IB6


3-81185
Octav
2002-07-04 19:23
2002.07.25
Blob





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский