swapnilsonawane123 Ответов: 3

Как вызвать exe из службы windows на языке C#


Я хотел вызвать внешний exe-файл из службы windows в windows 10. Но когда я устанавливаю сервис, он не работает. Чтобы запустить службу, мне нужно изменить свойства входа в систему для этой службы. Но я не хочу вносить никаких изменений после установки сервиса. Он должен работать как есть.

Что я уже пробовал:

Пробовал различные примеры, приведенные в блогах, но безуспешно.

3 Ответов

Рейтинг:
1

Bernhard Hiller

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


Рейтинг:
0

Wendelius

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

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

Если вы не хотите менять учетную запись службы, попробуйте запустить исполняемый файл, используя другие явно указанные учетные данные. Вы можете определить учетную запись для использования, определив их в Класс ProcessStartInfo (System.Диагностика)[^]


Рейтинг:
0

swapnilsonawane123

Майк, спасибо за эту ценную информацию. Я пробовал ниже код, но все равно не повезло.

void OpenWithStartInfo()
{
    ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
    startInfo.WindowStyle = ProcessWindowStyle.Minimized;

    Process.Start(startInfo);

    startInfo.Arguments = "www.northwindtraders.com";

    Process.Start(startInfo);
}


F-ES Sitecore

Служба не имеет доступа к рабочему столу пользователя, она не может запускать настольные приложения, такие как IE. Что делать, если никто вообще не вошел в систему, что вы ожидаете тогда?