Форум: "Основная";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизКак отследить время простоя моего приложения? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.044 c