Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.042 c
3-1097500697
starik30
2004-10-11 17:18
2004.11.07
Запрос с union


1-1098627558
LAndreyV
2004-10-24 18:19
2004.11.07
Вопрос по компоненту EDIT


14-1097911291
MYSTERYO
2004-10-16 11:21
2004.11.07
Ставлю сетевуху - не инициализируется видео-карта,


1-1098184658
Mishenka
2004-10-19 15:17
2004.11.07
Компонент как в Outlook Express?


14-1098436698
klerk
2004-10-22 13:18
2004.11.07
ODBS





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