![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
Как определить что компьютер простаивает? Т.е. определенное время не двигается мышь и не нажимаются клавиши?
Если ли стандартные решения или функции API. Как винда это делает когда включает скринсейвер? |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
поставить хук на клаву и мышу. при срабатывании запоминать время. по таймеру сравнивать последнее запомненное и текущее.
-------------------- There are always someone smarter than you... |
|||
|
||||
Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
Ставить хуки занятие неблагодарное и чреватое проблемами.
Может быть существуют альтернативные решения? |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
|
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
фига се... а в микрософте то и не знают! хотя Snowy гораздо более простое решение привел) -------------------- There are always someone smarter than you... |
|||
|
||||
Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
Но я то знаю правду, что оценка постов это фигня, а настоящий плюс душу греет... Snowy +1
![]() Я сегодня добрый. ![]() Это сообщение отредактировал(а) Ch0bits - 7.8.2007, 14:47 |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
-------------------- There are always someone smarter than you... |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
он прав. а на мелкософте так делают потому что имеют причины делать обоснованные предположения о месте их хука в системной очереди хуков
-------------------- Обижено школьников: 8 |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
доказательства? ниразу не сталкивался с проблемами при использовании хуков) -------------------- There are always someone smarter than you... |
|||
|
||||
Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
"Комп" - ка существо агрессивное не простаивает никогда - он всегда действует
![]() А вот определить, что сейчас приложение не занимается обработкой сообщений, можно по срабатыванию OnIdle... |
|||
|
||||
DBZ |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 7.8.2007 Репутация: нет Всего: нет |
Заводим Интегер-переменную MsgCount. В WM_CREATE запустить таймер с интервалом скажем 200. Потом в цикле обработки сообщений
// <- Я имею в виду здесь case uMsg of WM_CREATE: begin ... end; WM_ACTIVATEAPP: begin ... end; WM_PAINT: begin ... end; WM_TIMER: begin ... end; ... WM_DESTROY: begin ... end; end; проставляем: if (uMsg<>WM_TIMER)and(и ещё <> какие-нибудь регулярные мессаги) then MsgCount:=0; а при каждом срабатывании таймера увеличиваем эту вариаблу на 1. Если она достигла определённой величины, то резюмируем - юзверь отошёл по делам... Способ не претендует на замену всем остальным, просто ещё одно соображение в тему. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
DBZ, таймер будет работать независимо от того, есть юзер за компом или нет.
Вопрос вообще про определение активности юзера - клава/мыша. Причём активности в системе, а не приложении. |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
мне кажется ответ на вопрос, заданный автором темы, уже дан Snowy
![]() Добавлено через 54 секунды но мне всетаки хочется услышать весомые аргументы против использования хуков, как таковых.... -------------------- There are always someone smarter than you... |
|||
|
||||
Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 8 Всего: 76 |
Лень ![]() ![]() ![]() -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
в данном случае да... но мне интересно, почему я так понимаю имелось ввиду использование хуков вообще. новую тему чтоли завести -------------------- There are always someone smarter than you... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |