Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.039 c
2-1136467704
Seraphim
2006-01-05 16:28
2006.01.22
Взаимодействие Программ


3-1132676973
oleggar
2005-11-22 19:29
2006.01.22
format dbf


2-1136488658
asd
2006-01-05 22:17
2006.01.22
DBGrid


2-1136315499
JazY
2006-01-03 22:11
2006.01.22
4 простых вопроса по DBgrid


14-1135590122
Sansy
2005-12-26 12:42
2006.01.22
Desion eXperiencell





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