![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить момент когда пользователь сделал Log off? [D5, NT4, Win2k, WinXP]
igornov © (2003-10-15 15:31:00)
Можно ли перехватить начало этого момента?
Если да то как?
Заранее благодарен.
igornov (2003-11-07 17:08:00) [1]
Как в этом окне ловить WM_ENDSESSION и что делать после этого?
Сервис при Log off почему-то падает с сообщением о том, что
ошибка по адресу и память по этому адресу не может быть Read.
ZEE (2003-11-03 16:44:00) [2]
igornov - создай в нем невидимое окно...
igornov (2003-11-03 16:39:00) [3]
Ну не имеет у меня этот сервис окна...хоть и делфовский.
И Application внутри Tservice не имеет хендла...
ZEE (2003-11-03 13:57:00) [4]
> igornov (03.11.03 13:33) [3]
> Если имеет то как взять хендл этого окна.
это разве не твой сервис? - если твой, то прога должна знать хендлы своих форм...
> И поучает ли сервис сообщения типа WM_ENDSESSION?
уже сказали же - если окно есть - то получает
igornov (2003-11-03 13:33:00) [5]
Если имеет то как взять хендл этого окна. И поучает ли сервис
сообщения типа WM_ENDSESSION?
Игорь Шевченко (2003-10-15 18:08:00) [6]
Если сервис имеет окно (а Delphiйские, насколько мне известно, имеют, то момент выхода - WM_ENDSESSION)
igornov (2003-10-15 18:00:00) [7]
Опишу требуемое более детально:
У меня работает сервис который считает время простоя некоторого
процесса а потом пытается корректно завершить процесс или если
это не удаётся то тогда убивает его. Так как сервис анализирует
окна то запускаю я его под системной учётной записью с доступом к рабочему столу. Всё работает замечательно за исключением моментов выхода одного юзера и входа другого - сервис останавливается с предупреждением об ошибке. Внутри сервиса я анализирую текущие окна делая "снимок" процессов. Потом перебираю хендлы и т.д. Очевидно что при выходе пользователя многие хендлы становятся недействительными и ... происходит ошибка с остановом сервиса.
Теперь вопрос: Как отловить внутри сервиса событие выхода пользователя и перестать анализировать окна? или сиё можно как-то защитить?(имеется ввиду проигнорировать ошибку... пробовал перебор окон в try...except помещать - не помогает).
Может у кого есть ещё соображения как проанализировать в сервисе
наличия открытого (активного) рабочего стола?
Зарнее благодарен за помощь.