![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сообщения Windows [D7, XP]
Spieler © (2006-02-20 18:14:00)Здраствуйте.
Есть служба Windows, которая начинает работу до входа пользователя в операционную систему.
Как отловить, вход в систему пользователя?
clickmaker (2006-02-21 12:41:00) [1]можно попробовать через RegisterWindowMessage('TaskbarCreated'
umbra (2006-02-21 12:40:00) [2]похоже на то. Лучше копать в сторону функции
LsaEnumerateLogonSessions(MSDN).
Spieler (2006-02-21 12:27:00) [3]Т.е. служба не может узнать о том, что пользователь совершил лог ин/аут, используя сообщения Windows?
umbra (2006-02-21 12:20:00) [4]WM_USERCHANGED посылается окнам, которых у службы нет. WM_ENDSESSION посылается приложениям (не окнам)
Spieler (2006-02-21 12:11:00) [5]Служба интерактивная.
Служба ловит сообщения!!! WM_ENDSESSION она отлавливает!!!
А WM_USERCHANGED - нет...
clickmaker (2006-02-21 11:57:00) [6]
> Spieler (21.02.06 11:29) [9]
чтоб служба ловила сообщения, она должна быть интерактивной
Spieler (2006-02-21 11:29:00) [7]Не ловит служба WM_USERCHANGED и все тут :'(
Spieler (2006-02-21 10:45:00) [8]У TServiceApplication я не видел обработчика OnMessage ...
А за Enabled = True- спасибо попробую :)
umbra (2006-02-21 10:38:00) [9]чтобы форма ловила сообщения, e нее должно быть
Enabled = True. А для службы все сообщения, по-моему, надо обрабатывать в обработчикеApplication.OnMessage
Spieler (2006-02-21 10:28:00) [10]Не отлавливает моя служба WM_USERCHANGED :(
Ловлю сообщение
procedure UserChanged(var Message: TMessage); message WM_USERCHANGEDна форме.
WndProc его тоже не ловит.
Где и как надо ловить WM_USERCHANGED?
Spieler (2006-02-21 08:33:00) [11]Ку!
Fay (2006-02-20 19:48:00) [12]WM_USERCHANGED
Ку?
Spieler (2006-02-20 18:49:00) [13]А все-таки нет ли сообщений Windows, оповещающих всех и вся, что пользователь "залогинился"?
Spieler (2006-02-20 18:43:00) [14]:) Пасиб!
clickmaker (2006-02-20 18:20:00) [15]как вариант FindWindow('Progman', nil) <> 0 по таймеру