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

Вниз

Как отследить время простоя моего приложения?   Найти похожие ветки 

 
Asail   (2005-12-19 14:42) [0]

Здрасте! Вот, возникло такое желание... Но, что-то я не пойму.
Сажаю обработчик на Application.OnIdle, сажаю на главную форму TTimer. Определяю глобальную переменную TimerCounter.
Далее, в случае OnIdle обнуляю TimerCounter,  а в TfrmMain.Timer1Timer увеличиваю счетчик на 1 и если настало время, то что-то делаю. Работать не хочет...
Я так понимаю, что после каждого тика таймера заново наступает событие OnIdle и, соответсвенно обнуление TimerCounter.
Может, кто-нибудь подскажет чего-нибудь более умного?
Спасибо!


 
Slym ©   (2005-12-19 14:46) [1]

Что такое "время простоя приложения"?


 
Asail   (2005-12-19 14:51) [2]

Т.е. когда в нет никаких действий с приложением, ни со стороны пользователя, ни со стороны самого приложения.


 
Anatoly Podgoretsky ©   (2005-12-19 15:05) [3]

Это как нет со стороны приложения, а таймер?


 
Asail   (2005-12-19 15:12) [4]


> Это как нет со стороны приложения, а таймер?


Ну, так в этом и проблема! А что делать?


 
Zeqfreed ©   (2005-12-19 15:23) [5]

Asail   (19.12.05 14:51) [2]
Это время очень мало. Зачем тебе нужна такая величина?


 
Slym ©   (2005-12-19 15:24) [6]

1. Завести переменную LastInput:Longint;
2. На каждое действие юзера делать LastInput:=GetTickCount;
3. Завести таймер (к примеру) и внем
if (GetTickCount-LastInput)>60000 then ПользовательУшел();


 
Slym ©   (2005-12-19 15:25) [7]

Понятие "действие юзера" - ты должен определить САМ!


 
Asail   (2005-12-19 16:05) [8]


> Понятие "действие юзера" - ты должен определить САМ!

А как его определить? Ну, допустим, нажатие на кнопки, ввод данных в TEdit, прокрутка DBGrid и т.д. и т.п. Ну и что, все это обрабатывать?
Неужто, все так плохо?!!


 
Leonid Troyanovsky ©   (2005-12-19 16:22) [9]


> Slym ©   (19.12.05 15:24) [6]
> 1. Завести переменную LastInput:Longint;
> 2. На каждое действие юзера делать LastInput:=GetTickCount;


GetLastInputInfo

--
Regards, LVT.


 
Slym ©   (2005-12-19 16:25) [10]

Asail   (19.12.05 16:05) [8]
Неужто, все так плохо?!!

Расслабься... Все хорошо... Думать вредно...


 
Eraser ©   (2005-12-19 16:33) [11]


> Asail   (19.12.05 14:42)

http://kladovka.net.ru/download.cgi?id=195
DLL, реализующая GetLastInputInfo под win9x.


 
Leonid Troyanovsky ©   (2005-12-19 16:40) [12]


> Asail   (19.12.05 16:05) [8]

> А как его определить? Ну, допустим, нажатие на кнопки, ввод
> данных в TEdit, прокрутка DBGrid и т.д. и т.п. Ну и что,
>  все это обрабатывать?



Application.OnMessage := DoMessageEvent;

procedure TForm1.DoMessageEvent (var Msg: TMsg; var Handled: Boolean);
begin
 case Msg.message of
   WM_KEYFIRST..WM_KEYLAST,
   WM_MOUSEFIRST..WM_MOUSELAST: {keyb/mouse is active now};
 end;
end;


--
Regards, LVT.


 
Asail   (2005-12-19 17:00) [13]


> http://kladovka.net.ru/download.cgi?id=195
> DLL, реализующая GetLastInputInfo под win9x.


Проверил работает и под XP, но перехватывает все события от мыши и клавиатуры, а надо только в моем приложении. Пользователь может работать с MS Word, например, а мое приложение, тем временем, должно считаться не активным. К тому-же, просто движение мыши, даже поверх окна моей программы, за активность считать не хотелось-бы.
Может, еще какие варианты есть?


 
Eraser ©   (2005-12-19 17:56) [14]


> Asail   (19.12.05 17:00) [13]

Да эт опять моя невнимательность вследстии не досыпания виновата. Для приложения конечно же всё проще Leonid Troyanovsky ©   (19.12.05 16:40) [12]


 
Leonid Troyanovsky ©   (2005-12-19 17:57) [15]


> Asail   (19.12.05 17:00) [13]

> Проверил работает и под XP, но перехватывает все события
> от мыши и клавиатуры, а надо только в моем приложении.


Млин, ну в OnIdle - включаешь таймер, в OnMessage - [12] - выкл.

--
Regards, LVT.


 
Asail   (2005-12-19 18:05) [16]


> Да эт опять моя невнимательность вследстии не досыпания
> виновата. Для приложения конечно же всё проще Leonid Troyanovsky
> ©   (19.12.05 16:40) [12]


Да, уж! И мне бы спать побольше не мешало !!!
СПАСИБО! Работает - класс!



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

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

Наверх




Память: 0.5 MB
Время: 0.027 c
11-1117997478
Ilnur
2005-06-05 22:51
2006.01.22
Richedit в MCK


14-1135464116
Shastox
2005-12-25 01:41
2006.01.22
Acc to MP3


3-1132829235
FesSumy
2005-11-24 13:47
2006.01.22
F1! Экспорт из DBF в XML.


14-1135531495
Витёк
2005-12-25 20:24
2006.01.22
Как отправить письмо!?


1-1134632727
oleggar
2005-12-15 10:45
2006.01.22
unarj