Вызов приложения Windows из службы Windows при завершении работы системы - PullRequest
0 голосов
/ 19 декабря 2009

Я занимаюсь разработкой службы Windows в .Net 3.5 в C #. Этот сервис используется для периодического вызова формы Windows. Теперь я хотел бы подключить событие к сервису , чтобы при попытке пользователя выключить систему также появилась форма окна, предотвращающая процесс выключения. Пользователь может затем отключить систему только через приложение Windows.

Есть ли способ сделать это в службе Windows?

Редактировать

Я хочу, чтобы это было сделано в только в Win 2000 и Win XP .

Спасибо

1 Ответ

2 голосов
/ 19 декабря 2009

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

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

...