Форум — Ответы ( К темам )
? | Георгий: аналог ScreenSaver в Explorer (04-04-2003 14:00:30) |
Хочу сделать, чтоб при отсутствии действий пользователя "вырубался" монитор 1. как отслеживать факт нажатия клавиш на клавиатуре/мышке 2. как отслеживать факт передвижения мыши 3. как "вырубить" монитор вроде нашёл: SendMessage(Application->Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 1); жду предложений по пунктам 1,2 и советов по 3-му. | |
Павел (05-04-2003 14:15:07) | |
А не проще использовать для этого стандартный ScreenSaver ? Установите нужное время, через сколько он будет вырубаться и все, зачем усложнять ? | |
Георгий (05-04-2003 15:27:16) | |
моя прога является Shell заменителем и программа explorer, которая и загружает ScreenSaver, не запускается.
| |
Alexander (07-04-2003 11:17:09) | |
Ну а в чем проблема-то ? Вешаешь обработчики на все, что у тебя является событием пробуждения / отсрочки включения screensaver'а и сбрасываешь там таймер / выключаешь saver, если включен. В обработчике же события Application->OnIdle смотришь, сколько у тебя не трогали клаву... При этом, естественно, ты должен быть самым верхним переватчиком сообщений клавиатуры и мыши. Это самое сложное, но это должно как-то делаться | |
Георгий (07-04-2003 19:14:11) | |
OnIdle — не подходит — у меня другие потоки всё машинное время занимают предлагаете на 30 форм + несколько динамически генерируемых повесить обработчики OnKeyDown и OnMouseMove — выглядит не очень продуктивно | |
Alexander (08-04-2003 11:57:22) | |
Нет, я предлагаю перехватывать уровнем выше. У шелла наверняка есть такая возможность. Если у тебя нету воможности быть в OnIdle (что вообще-то очень странно), то ставь таймер и добавляй в него по событию мышь и клавиатуры. Кстати, насчет OnMouseMove — по-моему, есть низкоуровневый интерфейс к мыши насчет количества перемещений... (т.е. пройденный путь :). А как, интересно, это делает шелл, если не обрабатывает OnMouseMove ? Явно обрабатывает, и ничего, не тормозит :) Значит, можно так сделать. | |
Георгий (08-04-2003 12:13:01) | |
вот и меня интересует КАК перехватывать уровнем выше.
|