Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



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


3-86258
peypivo
2003-12-03 14:45
2003.12.26
странная таблица


3-86280
Bless
2003-12-02 11:01
2003.12.26
Сработал ли post?


14-86503
k-man
2003-12-03 22:37
2003.12.26
Страдаю от безработицы :)


6-86478
Alex134
2003-10-28 00:12
2003.12.26
Как узнать, существует ли пользователь с именем name?




   Наверх