2013-04-29 6 views
3

Я создал приложение-службу Windows на C#, чтобы отобразить диалоговое окно с определенными интервалами. При отладке в Visual Studio он работает хорошо. Затем я создал установку. Но после установки службы не запускается всплывающее диалоговое окно. Какова будет причина и как я могу это исправить?Откройте диалоговое окно из службы Windows

+0

Вы не должны это сделать, см http://stackoverflow.com/a/12956489/261050. См. Другие ответы на этот вопрос для обходных решений. – Maarten

+0

Возможный дубликат [показать форму окна из окна службы] (http://stackoverflow.com/questions/12953148/show-a-windows-form-from-a-window-service) – Dennis

+0

Если я столкнулся с этой проблемой, я сделают это. Поместите 'Try Catch' и' log' исключение в файл. и см.., :) – RajeshKdev

ответ

2

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

Если ваше диалоговое окно достаточно простое, вы можете использовать WTSSendMessage.

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

0

Как ваша служба установлена? В каких версиях Windows вы работаете?

Если vista/7 делает ли интерактивные службы обнаружение?

Нижняя линия - это службы Windows, где никогда не предназначено для взаимодействия с пользователем.

Существует способ, однако, но я бы рекомендовал использовать другой способ взаимодействия с пользователем

Настройка службы окна, чтобы взаимодействовать с рабочим столом может создать проблему безопасности.

Я отправил эту ссылку Надеюсь, что это помогает

http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/1c3d4b96-c58b-465a-a964-89926bd455f1/

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