Как запустить процесс из службы Windows - PullRequest
1 голос
/ 12 апреля 2010

Я хочу получить браузер с указанным URL из в службе Windows . Вот так:

System.Diagnostics.Process.Start("http://www.venganza.org/");

Прекрасно работает при запуске в консоли, но не из службы. Нет сообщений об ошибках, нет исключений, команда Process.Start (), похоже, ничего не делает. Пахнет какой-то проблемой безопасности, может быть, что-то со свойствами сервиса и / или параметрами входа в систему? Раздражает это ... Кто-нибудь? (Ну и на windows 7 / .NET framework 3.5.)

Ответы [ 4 ]

3 голосов
/ 12 апреля 2010

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

3 голосов
/ 12 апреля 2010

Сервис никогда не должен всплывать для пользователя. Не делай этого с сервисом.

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

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

0 голосов
/ 12 апреля 2010

Примечание: службы Windows не созданы для интерактивности . Они используются для обработки закулисных вещей. Однако пытались ли вы включить параметр Взаимодействовать с рабочим столом в самой службе?

0 голосов
/ 12 апреля 2010

Он появляется, но на оконной станции, связанной с услугой.

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

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