Re[3]: Auto-start service
От: emusic Франция https://software.muzychenko.net/ru
Дата: 13.04.05 07:49
Оценка:
Здравствуйте, Vladimyr, Вы писали:

V>В общем, подробности такие: если у сервиса нет формы,

V>то он переживает процедуру логоффа, а если есть — форма закрывается,
V>и вместе с ней мой сервис. (Сбоев никаких нет.)

Вот что происходит, когда пытаются писать системные компоненты по типу обычных юзерских аппликух

Начнем с того, что сервис изначально не предназначен для того, чтобы иметь окна и взаимодействовать с десктопом. Правильный сервис работает сам по себе, и с юзером взаимодействует через шлюзовые приложения, запускаемые в сеансе юзера. Но для упрощения и экономии сервисам разрешено иметь окна и работать с десктопом напрямую, но при этом они должны принимать меры, чтобы с ними не поступили, как с обычными приложениями. В частности, при logoff всем окнам верхнего уровня шлется сообщение WM_ENDSESSION, которое в DefWindowProc закономерно трансформируется в WM_QUIT. То же самое, кстати, должно происходить и при обычном закрывании окна.

Нужно перехватывать сообщения о закрытии окна и завершении сеанса, и не давать им завершать thread. Либо, действительно, работать с окном в отдельном thread'е, который будет завершаться.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.