Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2007, 18:20   #1
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию перехват изменения состояния Windows

Передо мной стоит такая задача.
1. При запуске Windows загрузить свое приложение, чтобы оно не отображалось на панели задач (Это несложно, как сделать знаю)
2. Если пользователь усыпляет Windows, или блокирует его или долгое время (до появления скринсейвера) не работает на нем, то надо, чтобы мое приложение это отследило и, допустим выдало звуковое сообщение.
Вот теперь и думаю, каким образом это можно отследить. Может, кто подскажет, что можно сделать.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 11.09.2007, 18:41   #2
Ring0Sn
Форумчанин
 
Аватар для Ring0Sn
 
Регистрация: 06.09.2007
Сообщений: 239
По умолчанию

Код:
function LastInput: dword;
var
  AInput: TLastInputInfo; 
begin 
  AInput.cbSize := SizeOf(TLastInputInfo); 
  GetLastInputInfo(AInput); 
  Result := GetTickCount - AInput.dwTime;
end;
Возвращает время простоя, те самые доли секунд с момента времени прошедшие с последнего ввода от пользователя (1 секунда = 1000)
Ring0Sn вне форума Ответить с цитированием
Старый 11.09.2007, 19:25   #3
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

А по поводу усыпления и блокировки? Время простоя да, это то, что нужно.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 11.09.2007, 20:33   #4
Ring0Sn
Форумчанин
 
Аватар для Ring0Sn
 
Регистрация: 06.09.2007
Сообщений: 239
По умолчанию

Цитата:
Сообщение от Shuraken Посмотреть сообщение
А по поводу усыпления и блокировки? Время простоя да, это то, что нужно.
Тут думаю надо месаги ловить, я ща3 невспомню точно какие, если сам ненайдеш, то гляну попозже, отпишусь
Ring0Sn вне форума Ответить с цитированием
Старый 12.09.2007, 11:47   #5
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Типа SetWindowsHookEx? Просто никогда не работал, а примеров подобного рода найти не могу.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 12.09.2007, 11:55   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Shuraken, загляни в Delphi World, там есть хороший пример хука на клаву.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.09.2007, 14:41   #7
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Смотрел, все замечательно, все понятно, но это на клаву. Можно найти и на мышку, тоже все понятно, но вот на системные события не знаю где найти, какие, не знаю, константы надо использовать, вот в этом сложность.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 12.09.2007, 14:49   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Дык пользователь блокирует винду ж через клаву, вот и распознавай что он нажал, по крайней мере наши в институте именно так делали.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.09.2007, 00:35   #9
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

На WIN+L сделал, спасибо. А на CTRL+ALT+DEL, блокировка, не знаю, не получилось.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 13.09.2007, 08:03   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну вообще то все говорят что это не совсем просто :
http://bbs.vbstreets.ru/viewtopic.ph...47f2e21803602f

Ну и так далее по яндексу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь в доведении программы до рабочего состояния Darion Помощь студентам 11 15.12.2011 01:52
Оценка состояния HDD с помощью системы S.M.A.R.T scruffy Общие вопросы Delphi 0 01.05.2008 19:18
Перехват системных вызовов Windows Irat Помощь студентам 1 04.02.2008 16:30
Вывод на экран состояния клавиш Seafulf Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 06.12.2007 19:33
Проверка состояния CheckboxState??? John_chek Компоненты Delphi 1 26.01.2007 11:18