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

Вниз

При помощи какой переменной или функции можно узнать ...   Найти похожие ветки 

 
Prohodil Mimo ©   (2004-10-22 16:30) [0]

...время которое пользователь ничего не делал, не жал мышь, не трогал клаву?
Гдето видел, но не помню где, что есть в системе переменная отвечающая за это и по которой ScreenSaver включается.

Мне нужно сделать что бы моя программа закрывалась по истечении определённого времени. Отдельный свой таймер запускать не охота.


 
Anatoly Podgoretsky ©   (2004-10-22 16:35) [1]

Эту переменную тебе придется заводить самому!


 
Prohodil Mimo ©   (2004-10-22 16:38) [2]

Anatoly Podgoretsky ©   (22.10.04 16:35) [1]
Значит нельзя узнать у винды сколько уже времени спит юзер?


 
Алхимик ©   (2004-10-22 16:44) [3]


> [2] Prohodil Mimo ©   (22.10.04 16:38)
> Anatoly Podgoretsky ©   (22.10.04 16:35) [1]
> Значит нельзя узнать у винды сколько уже времени спит юзер?

Почему спит, может он ест? :)


 
Prohodil Mimo ©   (2004-10-22 16:47) [4]

...а может это дворник злой? (с) пластилиновая ворона.


 
Digitman ©   (2004-10-22 16:47) [5]


> Prohodil Mimo


а мне кажется, что сист.механизм скринсеверов и без твоих специальных потуг запустит сринсевер в нужное время


> Мне нужно сделать что бы моя программа закрывалась по истечении
> определённого времени


оформи ее как скринсевер -  и будет тебе счастье.


 
Prohodil Mimo ©   (2004-10-22 16:53) [6]

Digitman ©   (22.10.04 16:47) [5]
оформи ее как скринсевер -  и будет тебе счастье.


мне нужно ЗАКРЫТИЕ программы, а не ЗАПУСК :о)

Как вариант - запуск скринсавера закрывающего мою прогу :о) (шутка)


 
Юрий Зотов ©   (2004-10-22 16:55) [7]

> Prohodil Mimo ©   (22.10.04 16:30)

При запуске программа ставит глобальные хуки на клаву и мышь. При каждом событии мыши/клавы этии хуки посылают сообщение окну программы. В программе работает таймер и при поступлении этого сообщения он сбрасывается в ноль. А по событию OnTimer программа снимает хуки и закрывается. Все.

Только что значит - "юзер спит"? А если он полчаса один экран вордового документа читает - это спит или не спит?


 
Игорь Шевченко ©   (2004-10-22 17:00) [8]

Юрий Зотов ©   (22.10.04 16:55) [7]

msidle.dll - там реализован механизм с хуками, в случае, если система не поддерживает функции GetLastInputInfo


 
Кулюкин Олег   (2004-10-22 17:04) [9]

попробуйте обрабатывать TApplication.OnIdle.


 
Digitman ©   (2004-10-22 17:06) [10]


> Prohodil Mimo ©   (22.10.04 16:53) [6]


разработай, инсталлируй. активируй при старте системы свой KMD

пусть он "подсчитывает" отн.время и число событий устр-в ввода/вывода для заданнлого процесса ... терминировать процесс тем или иным образом из KMD - не проблема.


 
Prohodil Mimo ©   (2004-10-22 17:08) [11]

Юрий Зотов ©   (22.10.04 16:55) [7]
Не хотелось прогу хуками нагружать.


> А если он полчаса один экран вордового документа
> читает - это спит или не спит?


ну и пусть читает, а моя прога должна закрыться. Перед закрытием выдам сообщение, что прога закроется через Х секунд. Жми "закрыть" или "отменить закрытие".


 
Юрий Зотов ©   (2004-10-22 17:15) [12]

> Prohodil Mimo ©   (22.10.04 17:08) [11]

> Не хотелось прогу хуками нагружать.
> ну и пусть читает, а моя прога должна закрыться.

В таком случае логичнее закрывать программу, если юзер N минут не работает именно с ней, а не вообще. А тогда можно обойтись и без хуков. Схема остается той же, но таймер сбрасывается в обработчике Application.OnMessage, если в него пришло сообщение мыши или клавы.


 
Prohodil Mimo ©   (2004-10-22 17:24) [13]

Юрий Зотов ©   (22.10.04 17:15) [12]
но таймер сбрасывается в обработчике Application.OnMessage


точно, так и сделаем. спасибо!

ЗЫ. что-то тормозю, мог бы и сам догадаться.


 
wicked ©   (2004-10-22 17:53) [14]

кстати, если нужна реакция программы на запуск скринсейвера, то можно обрабатывать WM_SYSCOMMAND с параметром SC_SCREENSAVE....
возвратим 0 - система подумает, что скринсейвер запущен,
возвратим 1 - она так не подумает.... :)
просто можно реагировать на сам факт пришествия такого сообщения и предпринимать необходимые действия.......
кстати, добавлю, что если возвращать 0 (скринсейвер запущен), то система с поределенным периодом будет все равно передавать это сообщение.... проверялось на win95....



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

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

Наверх




Память: 0.5 MB
Время: 0.032 c
14-1098286900
Profi
2004-10-20 19:41
2004.11.07
Помогите решить


14-1098088437
Aldor_
2004-10-18 12:33
2004.11.07
Народ, у кого есть Matlab/Mathcad или т.п., вычислите, пожалуйста


4-1096373253
-SeM-
2004-09-28 16:07
2004.11.07
Разная работа приложения в 9х/ХР


1-1098646798
Zloy_SHREK
2004-10-24 23:39
2004.11.07
Проблема с полосой прокрутки.


14-1097734826
AndB
2004-10-14 10:20
2004.11.07
Cache – мнения есть?