Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как определить что комп простаивает? 
:(
    Опции темы
Ch0bits
Дата 7.8.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: нет
Всего: 62



Как определить что компьютер простаивает? Т.е. определенное время не двигается мышь и не нажимаются клавиши?
Если ли стандартные решения или функции API. Как винда это делает когда включает скринсейвер?
PM WWW   Вверх
MetalFan
Дата 7.8.2007, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



поставить хук на клаву и мышу. при срабатывании запоминать время. по таймеру сравнивать последнее запомненное и текущее.


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Ch0bits
Дата 7.8.2007, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: нет
Всего: 62



Ставить хуки занятие неблагодарное и чреватое проблемами.
Может быть существуют альтернативные решения?
PM WWW   Вверх
Snowy
Дата 7.8.2007, 12:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Код
var
  LastInput:   TLastInputInfo;
begin
  LastInput.cbSize := SizeOf(LastInput);
  if GetLastInputInfo(LastInput) then
    if (GetTickCount - LastInput.dwTime) > 300000 then // 5 минут не видно юзера

PM MAIL   Вверх
MetalFan
Дата 7.8.2007, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



Цитата(Ch0bits @  7.8.2007,  12:47 Найти цитируемый пост)
Ставить хуки занятие неблагодарное и чреватое проблемами.

фига се... а в микрософте то и не знают!
хотя Snowy гораздо более простое решение привел)


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Ch0bits
Дата 7.8.2007, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: нет
Всего: 62



Но я то знаю правду, что оценка постов это фигня, а настоящий плюс душу греет... Snowy +1  smile 

Цитата(MetalFan @  7.8.2007,  14:01 Найти цитируемый пост)
неоткажусь от (+)

Я сегодня добрый.  smile 

Это сообщение отредактировал(а) Ch0bits - 7.8.2007, 14:47
PM WWW   Вверх
MetalFan
Дата 7.8.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



Цитата(Ch0bits @  7.8.2007,  14:47 Найти цитируемый пост)
Я сегодня добрый.

спасиба конечно)

но про хуки ты зря так ;)


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
bems
Дата 7.8.2007, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 21
Всего: 88



Цитата(MetalFan @  7.8.2007,  15:13 Найти цитируемый пост)
но про хуки ты зря так ;) 
он прав. а на мелкософте так делают потому что имеют причины делать обоснованные предположения о месте их хука в системной очереди хуков



--------------------
Обижено школьников: 8
PM MAIL   Вверх
MetalFan
Дата 7.8.2007, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



Цитата(bems @  7.8.2007,  18:34 Найти цитируемый пост)
он прав.

доказательства?
ниразу не сталкивался с проблемами при использовании хуков)


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Rouse_
Дата 7.8.2007, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 18
Всего: 29



"Комп" - ка существо агрессивное не простаивает никогда - он всегда действует smile
А вот определить, что сейчас приложение не занимается обработкой сообщений, можно по срабатыванию OnIdle...


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
DBZ
Дата 7.8.2007, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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.
Если она достигла определённой величины, то резюмируем - юзверь отошёл по делам...
Способ не претендует на замену всем остальным, просто ещё одно соображение в тему.
PM MAIL   Вверх
Snowy
Дата 7.8.2007, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



DBZ, таймер будет работать независимо от того, есть юзер за компом или нет.
Вопрос вообще про определение активности юзера - клава/мыша.
Причём активности в системе, а не приложении.
PM MAIL   Вверх
MetalFan
Дата 7.8.2007, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



мне кажется ответ на вопрос, заданный автором темы, уже дан Snowy  smile

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


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Rennigth
Дата 8.8.2007, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



Цитата(MetalFan @  7.8.2007,  22:45 Найти цитируемый пост)
но мне всетаки хочется услышать весомые аргументы против использования хуков, как таковых.... 

Лень smile Когда есть более элегантное решение предложеное Showy  smile  smile 


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
MetalFan
Дата 8.8.2007, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



Цитата(Rennigth @  8.8.2007,  10:54 Найти цитируемый пост)
Когда есть более элегантное решение предложеное Showy

в данном случае да...

но мне интересно, почему
Цитата(Ch0bits @  7.8.2007,  12:47 Найти цитируемый пост)
Ставить хуки занятие неблагодарное и чреватое проблемами.

я так понимаю имелось ввиду использование хуков вообще.
новую тему чтоли завести



--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1068 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.