Как я могу запустить браузер из службы Windows - PullRequest
0 голосов
/ 02 февраля 2011

Мне нужно создать службу Windows, которая при запуске открывает определенный URL.Я переопределил метод onStart (), добавив следующие строки:

protected override void OnStart (string [] args)

    {
        eventLog1.WriteEntry("Browser must start " + DateTime.Now);
        string targetURL = "http://www.mysite.com";
        System.Diagnostics.Process.Start(targetURL);
    }

Однако это не работает.: ((Дело в том, что он пишет журнал. Это означает, что у OnStart Anybody есть какие-либо идеи ????

Ответы [ 3 ]

2 голосов
/ 02 февраля 2011

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

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

2 голосов
/ 02 февраля 2011

Простой ответ: если вы используете Vista или выше, вы не можете. Это связано с изоляцией сеанса 0 . Цитировать из документа, на который ссылается эта страница:

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

1 голос
/ 02 февраля 2011

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

Эта ссылка не дает прямого ответа на ваш вопрос, но содержит достаточно ссылок в ответах, чтобы указать правильный путь: Как запустить приложение с графическим интерфейсом Windows как службу?

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