![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| zetxi815eb |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 17.1.2007 Репутация: нет Всего: нет |
Нужна написать прогу, подобную той, которая запускает скринсейвер в Винде.
Т.е. Если пользователь не шевелит мышкой и клавиатурой в течении - 10 минут - то запускаем процедуру - будильник. Только вот как и какими средствами это реализовать?..подскажите пожалуйста. Как отследить бездействие пользователя? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
zetxi815eb, отслеживать события от мыши и клавиатуры, если их нет то бездействует. Однако он может кино смотреть. Это не бездействие... нехорошо человека дергать во время просмотра кина.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| zetxi815eb |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 17.1.2007 Репутация: нет Всего: нет |
это я понимаю... а в виде кода можно? желательно с комментами...а то я новичек |
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: нет Всего: 41 |
1) есть компонент ApplicationEvents 2) у него есть событие OnIdle, как раз оно и отвечает за бездействие... 3) код ты должен придумывать, а мы поможем, если что... Так что давай... а такие штуки, что дайте мне код, я новичок, да еще и с комментами (типа без комментов мне не надо) тут не проканают, иначе в Центр помощи, там хныч... -------------------- |
|||
|
||||
| zetxi815eb |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 17.1.2007 Репутация: нет Всего: нет |
Нашел такую библиотеку
И пример использования
Сейчас попробую попробую. Только вот не знаю как код библиотеки в dll файл превратить. |
||||
|
|||||
| Dmi3ev |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: нет Всего: 41 |
мне кажется, что лучше
хотя особо не вдумывался в твою библиотеку... сначала стоит с компонентом попытаться, а потом уже хуки ставить... -------------------- |
||||
|
|||||
| MetalFan |
|
||||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
народ, а не сильно ли усложняете?
GetLastInputInfo пример пользования:
в кэпшн формы получаем кол-во мсек с последнего шевеления мышой или нажатии клавиш. Добавлено через 7 минут и 37 секунд
а здесь под Idle имеется ввиду то, что бездействует приложение, а не пользователь ;) Это сообщение отредактировал(а) MetalFan - 22.3.2009, 16:42 -------------------- There are always someone smarter than you... |
||||
|
|||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: нет Всего: 41 |
MetalFan, а я об этом даже не подумал! Точняк!
-------------------- |
|||
|
||||
| MadCoder |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
Пишем функцию, которая определяет количество миллисекунд простоя:
И используем ее, например в Timer:
Простой определяется по движениям мышки и клавы, т.е. если пользователь 10 минут не двигает мышкой и не нажимает ничего на клаве - поругается. |
||||
|
|||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
MadCoder, ну просто разжевал и в рот положил)
но, кстати, заметил следующее: если спролить точпадом, то GetLastInputInfo не считает это действием пользователя -------------------- There are always someone smarter than you... |
|||
|
||||
| MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
Скопипастил из своего проекта на самом деле Во всем виноваты злобные программеры Microsoft, не сумевшие вовремя предугадать появление тачпадов, а потом влом дописывать было... |
|||
|
||||
| zetxi815eb |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 17.1.2007 Репутация: нет Всего: нет |
Спасибо большое сделал вот так
Но компилятор ругается [Error] Unit1.pas(58): Incompatible types: 'Parameter lists differ' Не пойму что именно ему надо |
||||||||
|
|||||||||
| MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
Так работает:
|
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
OnTimer = TNotifyEvent = procedure (Sender: TObject ) of object; все верно. но не проще ли "создать" обработчик события OnTimer даблкликом на компонент таймера? -------------------- There are always someone smarter than you... |
|||
|
||||
| zetxi815eb |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 17.1.2007 Репутация: нет Всего: нет |
Всем огромное спасибо!!!
Все работает! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |