Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];

Вниз

Как определить момент когда пользователь сделал Log off?   Найти похожие ветки 

 
igornov   (2003-10-15 15:31) [0]

Можно ли перехватить начало этого момента?
Если да то как?

Заранее благодарен.


 
igornov   (2003-10-15 18:00) [1]

Опишу требуемое более детально:
У меня работает сервис который считает время простоя некоторого
процесса а потом пытается корректно завершить процесс или если
это не удаётся то тогда убивает его. Так как сервис анализирует
окна то запускаю я его под системной учётной записью с доступом к рабочему столу. Всё работает замечательно за исключением моментов выхода одного юзера и входа другого - сервис останавливается с предупреждением об ошибке. Внутри сервиса я анализирую текущие окна делая "снимок" процессов. Потом перебираю хендлы и т.д. Очевидно что при выходе пользователя многие хендлы становятся недействительными и ... происходит ошибка с остановом сервиса.

Теперь вопрос: Как отловить внутри сервиса событие выхода пользователя и перестать анализировать окна? или сиё можно как-то защитить?(имеется ввиду проигнорировать ошибку... пробовал перебор окон в try...except помещать - не помогает).

Может у кого есть ещё соображения как проанализировать в сервисе
наличия открытого (активного) рабочего стола?

Зарнее благодарен за помощь.


 
Игорь Шевченко   (2003-10-15 18:08) [2]

Если сервис имеет окно (а Delphiйские, насколько мне известно, имеют, то момент выхода - WM_ENDSESSION)


 
igornov   (2003-11-03 13:33) [3]

Если имеет то как взять хендл этого окна. И поучает ли сервис
сообщения типа WM_ENDSESSION?


 
ZEE   (2003-11-03 13:57) [4]


> igornov (03.11.03 13:33) [3]
> Если имеет то как взять хендл этого окна.

это разве не твой сервис? - если твой, то прога должна знать хендлы своих форм...


> И поучает ли сервис сообщения типа WM_ENDSESSION?

уже сказали же - если окно есть - то получает


 
igornov   (2003-11-03 16:39) [5]

Ну не имеет у меня этот сервис окна...хоть и делфовский.
И Application внутри Tservice не имеет хендла...


 
ZEE   (2003-11-03 16:44) [6]

igornov - создай в нем невидимое окно...


 
igornov   (2003-11-07 17:08) [7]

Как в этом окне ловить WM_ENDSESSION и что делать после этого?
Сервис при Log off почему-то падает с сообщением о том, что
ошибка по адресу и память по этому адресу не может быть Read.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
6-25479
CaDIsT
2003-11-03 09:30
2004.01.09
TTcpServer и TTcpClient


14-25560
Kein
2003-12-19 20:45
2004.01.09
Access


14-25609
Kerk
2003-12-16 12:49
2004.01.09
Пасхальное яйцо


3-25240
GameBoy
2003-12-10 22:49
2004.01.09
Эксклюзивный режим


1-25289
SCUD-24
2003-12-23 13:30
2004.01.09
Создание прокси-сервера средствами Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский