Я знаю, что запуск процесса из приложения Windows Service невозможно (или очень сложно из-за служб Windows, работающих в изолированном процессе). Однако можно ли запустить службу Windows из метода внутри приложения WPF? Если да, то как это сделать на C#?Как запустить прикладное приложение Windows из метода приложения WPF
ответ
Во-первых, некоторые фон:
службы Windows (WS) представляет собой фоновый процесс, который выполняется без пользовательского интерфейса (без учета вы непослушный WS с Разрешить взаимодействие с рабочим столом галочкой) и может работать до того, как пользователь выполнил вход в систему. Из-за этого WS может работать в контексте LOCALSYSTEM; NETWORK SERVICE или даже явная учетная запись пользователя, предназначенная для службы среди других. Службы, которые начинаются с Windows во время загрузки и перед входом пользователя, известны как Автозапуск услуг. Есть даже зверь, известный как отложенный автозапуск.
Однако возможно ли запустить службу Windows из метода внутри приложения WPF?
Если «запустить» вы имеете в виду, как запускать ранее развернутый WS для запуска, тогда «Да!».
Рассмотрим пример ниже и представьте, что метод SomeMethodInMyWpfApp()
существует где-то в вашем приложении WPF. Затем, просто вызвав этот метод, мы получим ссылку на служебный контроллер для WS, известный как «MissPiggyService» по имени. Когда у нас есть ссылка, мы можем запросить состояние службы. Это работает? Он находится в процессе запуска? Если ответ на оба этих вопроса «нет», мы выдаем запрос на запуск службы. Мы делаем это, потому что обычно нехорошо говорить, что SC запускает сервис, который уже находится в процессе запуска.
void SomeMethodInMyWpfApp()
{
ServiceController sc = new ServiceController("MissPiggyService");
if (sc.Status != ServiceControllerStatus.Running &&
sc.Status != ServiceControllerStatus.StartPending)
{
sc.Start();
}
}
Однако, если по «Тем не менее, можно запустить службу Windows из метода внутри приложения WPF?» вы можете создать; реплицировать и запускать функциональные возможности внешнего WS в вашем приложении WPF - тогда нет.
WS не являются регулярными процессами. Для одного вы не можете внедрить один процесс в другой (по крайней мере, я не думаю, что вы можете, мы не говорим об AppDomains здесь), но что более важно, WS должен иметь возможность отвечать на Windows Service Controller, когда он попросит ваш WS начать, остановить и, возможно, приостановить. То, что обычный процесс не реализует.
- 1. C# - Запустить приложение WPF из службы Windows
- 2. Как я могу запустить приложение Windows ТОЛЬКО из другого приложения?
- 3. Прикладное приложение
- 4. Windows Phone 8 - Запустить приложение из приложения
- 5. Запустить приложение Windows с помощью метода Autoit
- 6. Запустить приложение Windows 8 с WPF
- 7. Как запустить приложение WPF из веб-службы?
- 8. Windows Phone 8.1: как запустить Установленное приложение из моего приложения
- 9. Как запустить приложение из другого приложения в Windows Phone 8.1
- 10. Как запустить универсальное приложение Windows из winform
- 11. Запустить приложение камеры из Windows 10 из настольного приложения
- 12. Как запустить процесс Linux из приложения Windows?
- 13. Как запустить приложение WPF из другого каталога?
- 14. Прикладное приложение iPad странное поведение
- 15. Как запустить консольное приложение из Windows Service?
- 16. Запустить приложение WPF в DLL из консольного приложения exe
- 17. Запустить приложение Windows Form из службы Windows
- 18. Приложение Windows 10 - запустить другое приложение или собственное приложение Windows из приложения
- 19. Запустить приложение Windows как услугу?
- 20. Запустить приложение из приложения Phonegap
- 21. Запустить внешнее приложение из приложения
- 22. Запустить приложение Windows из службы Windows
- 23. Как запустить приложение Windows Forms из PHP
- 24. Изменение из Windows Forms в приложение WPF
- 25. Как запустить IE7 из приложения Windows Phone?
- 26. Как запустить приложение Windows RDC
- 27. Как запустить приложение Mail из моего приложения?
- 28. Как запустить приложение из приложения C#?
- 29. Как запустить приложение из другого приложения
- 30. Как запустить приложение ClickOnce из другого приложения?
спасибо! это то, что я искал! – Nico
@Nico. Добро пожаловать, сэр! :) – MickyD