запуск интерфейса с сервисом Windows - PullRequest
3 голосов
/ 08 сентября 2011

Я планирую запустить приложение UI для запуска / мониторинга, используя службу Windows (написано на C #), с отметкой «Разрешить службе взаимодействовать с рабочим столом» это прекрасно работает с Windows XP, но с Windows 7 всплывающее окно показано, как показано ниже

enter image description here

и когда я нажимаю на просмотр сообщения, весь экран отключается, отображается только пользовательский интерфейс, как показано ниже.

enter image description here

есть ли способ заставить его работать без отображения сообщения и отключения экрана.

комментарии / предложения приветствуются.

С уважением DEE

Ответы [ 2 ]

7 голосов
/ 08 сентября 2011

В Vista и более поздних версиях службы не могут взаимодействовать с рабочим столом.Службы работают под так называемой изоляцией сеанса 0 .То, что вы пытаетесь сделать, просто невозможно.

Вам придется переписать приложение, чтобы часть пользовательского интерфейса находилась в стандартном приложении Windows, которое запускается на рабочем столе пользователя, вошедшего в систему.Эта часть пользовательского интерфейса может взаимодействовать со службой с помощью любого механизма IPC, который вы предпочитаете.

3 голосов
/ 08 сентября 2011

«Разрешить службе взаимодействовать с рабочим столом» - это устаревший вариант, который в настоящее время крайне нежелателен, и, хотя он существует, не ожидается, что он будет работать в Windows Vista и выше.

Вам нужно прочитать немного о том, почему это так в другом ответе SO:
Разрешить службе взаимодействовать с рабочим столом в Windows

Тогда ищите альтернативы, обсуждаемые в ответе здесь:
Альтернатива «Разрешить службе взаимодействовать с рабочим столом»?

Другое обсуждение вне SO:
http://social.msdn.microsoft.com/forums/en-US/windowssdk/thread/f8f91e8f-5954-43a7-8bc4-80ed2ff1e3b1/

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