Главная страница
    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.043 c
9-1122718523
Зм1й
2005-07-30 14:15
2006.01.22
Как повернуть точку на 90 градусов вокруг оси X?


2-1135852497
Dmitrij_K
2005-12-29 13:34
2006.01.22
Ускорение поиска файлов


2-1136664055
Zikmu
2006-01-07 23:00
2006.01.22
Папки с иконками пользователя в поиске файлов


14-1135922363
КаПиБаРа
2005-12-30 08:59
2006.01.22
C наступающим Новым годом, Друзья!


2-1135748061
mss
2005-12-28 08:34
2006.01.22
как проиграть два файла





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