Всплывающие окна с предупреждениями из сервиса на Python
Вопрос
Я использовал win32api.MessageBox для создания оповещений, и это работает для приложений, запускаемых из интерактивной подсказки и обычно выполняемого кода, однако, когда я создал службу Python, при запуске MessageBox я слышу "звуковой сигнал", но окно не отображается.Возможно ли отображать оповещения от сервисов?
Решение
Нет, службы Windows запускаются на совершенно отдельном скрытом рабочем столе и не имеют доступа к рабочему столу вошедшего в систему пользователя.С точки зрения разработчика сервиса, обойти это невозможно.
В предыдущих версиях Windows было возможно пометить службу как "разрешенную для взаимодействия с рабочим столом пользователя", но эта опция была удалена в XP или Vista (я забыл, в какой именно).Теперь службы не могут взаимодействовать с рабочим столом пользователя.
Одним из решений вашей проблемы может быть создание настольного приложения, которое взаимодействует со службой с помощью какого-либо метода IPC.Когда служба хочет предупредить пользователя о каком-либо условии, она уведомляет настольное приложение, которое затем отображает обычное окно сообщения.