2010-05-29 2 views

ответ

3

Услуга вероятно должен быть предоставлен доступ к рабочему столу. Сделайте это из свойств «Сервис», «Вход в систему», войдите в систему как локальная системная учетная запись и установите флажок «Разрешить службе взаимодействовать с рабочим столом».

+4

Следует отметить, что взаимодействовать с рабочим столом является немного проблемы безопасности, и вы действительно должны стараться держаться подальше от него. – Anders

3

Наличие окон, которые запускаются как SYSTEM на рабочем столе пользователя, является проблемой безопасности, вы должны действительно использовать другую форму IPC (Если вам нужно всего лишь сообщить об этом службе, не предоставляя никаких других данных, событие должно быть достаточным)

Если с другой стороны вы хотите поймать уведомления из самих окон об изменениях устройства, событиях питания и сеансах и т. д., вы не делаете этого с сообщениями, когда вы работаете как служба, вы получаете эти события в вашей HandlerEx

0

Кто посылает в эфир? Если компонент, отправляющий широковещательную рассылку, работает как локальная система, у него нет привилегии отправлять сообщения окна в дескрипторы окон в разных сеансах.

Поскольку все службы Windows (начиная с Vista) работать в сеансе 0, и почти все остальные компоненты выполняются в сеансе> = 1, скорее всего, именно поэтому вы не получаете радиопередачу.

Смежные вопросы