Тост-уведомление в Windows Service Win10 - PullRequest
0 голосов
/ 06 ноября 2019

Я занимаюсь разработкой программного обеспечения и рассматриваю его как сервис, потому что мне нужно, чтобы оно слушало порты 24X7 и уведомляло о подключении нового клиента (уведомление о тосте). Мне удалось отправить уведомление Toast из классического приложения Win32 c ++, но я не могу отправить его через службу Windows, даже когда я отмечаю «Разрешить службе взаимодействовать с пользовательским интерфейсом». Что вы думаете о программной архитектуре ?! Как вы думаете, мне следует пересмотреть Архитектуру программного обеспечения или есть какой-либо другой способ отправить уведомление Toast через Службу Windows?

1 Ответ

0 голосов
/ 06 ноября 2019

«Разрешить взаимодействию службы с пользовательским интерфейсом» действует только до XP. До этого первый пользователь, вошедший в систему, выполнял сеанс 0, тот же сеанс, в котором работают службы. Но начиная с Vista, сеанс 0 теперь изолирован, пользователи работают только в сеансе 1 и выше, поэтому службы больше не могут взаимодействовать с пользователями. .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...