![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отловить блокировку и разблокировку экрана [D6, Win2k, WinXP]
Gulliver © (2002-09-11 12:54:00)Подскажите пожалуйста как можно отловить событие блокировки и разблокировки экрана. Необходимо зафиксировать фактическое время работы пользователя на компьютере (без перекуров и обедов).
Diamond Cat (2002-09-12 03:40:00) [1]public
procedure sc(var message:Tmessage);message wm_syscommand;
....
procedure Tform1.sc(var message:Tmessage);
begin
if message.WParam=SC_SCREENSAVE then врубаем счетчик времени
inherited;
end;
это подходит для всех стандартных скринсаверов но некоторые сторонние производители не делают широковещательные сообщения о том что включают свой сейвер
Song (2002-09-11 16:47:00) [2]Насчёт LockWorkStation см. здесь http://gethelp.devx.com/techtips/nt_pro/10_minute_solutions/10minNT0701-3.asp
Song (2002-09-11 16:44:00) [3]Отловить хранитель экрана - WM_SYSCOMMAND
Gulliver (2002-09-11 16:34:00) [4]Под Блокировкой экрана я понимаю - LockWorkStation.
Надо зафиксировать все время когда компьютер не заблокирован.
т.е. пользователь упорно сидит и тыкает кнопки. пусть хоть в пасьянс играет, лишь бы на рабочем месте находился.
Ну на крайняк отловить работу скринсейвера.
Alx2 (2002-09-11 13:14:00) [5]>Gulliver (11.09.02 12:54)
Каждые пять минут зашторивой экран каким-нибудь окном и по клику его снимай :)
Периоды присутствия окна = периоды отсутствия работника.
PS
Чего-то я злой какой-то :)
Song (2002-09-11 13:09:00) [6]А что такое блокировка? LockWorkStation и/или хранитель экрана или ещё что-то?