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

Вниз

Системное время   Найти похожие ветки 

 
Clift ©   (2003-12-14 00:27) [0]

При определённых настройках действия которые выполняет програма полностью зависят от Timer
Как на время работы программы запретить пользователю
изменять системное время.
p.s. Подозреваю что это нужно реализовать через API но в соответствующем форуме "тишина", подскажите
с помощью какой функции это можно выполнить.


 
Clift ©   (2003-12-14 02:39) [1]

?


 
REA ©   (2003-12-14 10:38) [2]

Да пожалуй никак. Можно это наверно отловить и попросить так не делать. В принципе он имеет право время поменять.


 
Clift ©   (2003-12-15 15:58) [3]

>REA ©
Я же несобираюсь лишать возможности изменять таймер навсегда, а лишь на время работы программы.


 
cpp   (2003-12-15 16:02) [4]

Создать Hook на процедуры API, при помощи которых осуществляется изменение времени. Мы перехватим обращение к этой процедуры, и взависимости от желания, может выполнить её или нет.
Я не знаю какую функцию нужно перехватить - я предлагаю идею в каком напррравлении двигаться


 
clift ©   (2003-12-15 16:04) [5]

>cpp
Ну напровление и я знаю!А вот функцию незнаю.


 
Sha ©   (2003-12-15 16:12) [6]

Используй счетчик тактов процессора. Здесь это уже было. Поищи.


 
Agent13   (2003-12-15 16:13) [7]

В принципе несложно узнать о том, что время было изменено (по-моему сообщение называется WM_TimeChange). Так может можно его отлавливать и обратно менять или ещё чё в этом роде :) Или так не пойдёт?


 
clift ©   (2003-12-15 16:25) [8]

>Agent13
Ситуация примерно такая
Если настроить программу то она каждую минуту(зависит от настроек)автоматически при истечении времени нажимает на кнопку
и снова запускает таймер, если минута истекла то кнопка снова нажимается. Если пользователь нажал кнопку сам то таймер также обновляется.
А проблема в том что минута времени отсчитывается от Now (после нажатия) отнимается текущие время.Понятно что если изменить текущее время таймер в программе также изменяется.
А это уже "неправильная работа программы"


 
Рамиль ©   (2003-12-15 16:29) [9]

А минуту времени по человечески отсчитывать нельзя что ли?
Timer.Interval := 60000;

Или, тогда уж, не now а GetTickCount


 
Agent13   (2003-12-15 16:43) [10]

2Рамиль

Точно. GetTickCount возвращает время, которое прошло после запуска системы, а уж его точно принудительно не изменишь и не подделаешь. :)


 
clift ©   (2003-12-15 16:46) [11]

>Рамиль ©
Использовать Интервал из-за некоторых особенностей невозможно
а вот GetTickCount стоит попробовать...


 
}{enon ©   (2003-12-15 17:24) [12]

Попробуй ловить сообщение WM_TIMECHANGE и изменять "нулевое время".



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

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

Наверх




Память: 0.49 MB
Время: 0.019 c
14-86526
Pat
2003-12-03 17:33
2003.12.26
Метод наименьших квадратов


4-86586
KyRo
2003-10-30 02:18
2003.12.26
Еще один вопрос по Shell_NotifyIcon


1-86445
MVVD
2003-12-13 12:29
2003.12.26
Не работает переключение форма/модуль


1-86347
csr
2003-12-12 17:27
2003.12.26
Как скрыть закладки в TPageControl?


3-86315
alless
2003-12-01 11:08
2003.12.26
Как узнать что поменялся Width в DBGrid?