Отключить службу Windows при запуске приложения

из-за конфликт VLC Я должен отключить расширенные текстовые службы Windows при запуске приложения. Есть ли для этого специальный API? Будет ли он работать для пользователя с правами по умолчанию?

5 ответов


ServiceController _ServiceController = new ServiceController([NameService]);
if (!_ServiceController.ServiceHandle.IsInvalid) 
{
     _ServiceController.Stop();
     _ServiceController.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromMilliseconds(uConstante.CtTempoEsperaRespostaServico));
}

вопрос называется "отключить службу Windows...- но все ответы говорят о том, как остановить службу.

большая часть того, что вы найдете в Google, заключается в том, что вы можете обновить реестр, чтобы отключить службу, используя что-то вроде этого:

RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Services\[YourServiceName]", true);
key.SetValue("Start", 4);

Я не пробовал этот метод, но кажется, что он будет работать. Я также придумал другой метод, который использует sc.exe для отключения услуги:

Process sc = Process.Start("sc.exe", "config [YourServiceName] start= disabled");

можно использовать ServiceController класс для этого. Примеры кода приведены на странице связанная документация.


для этого можно использовать WMI.

посмотрите здесь, например:http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=114


просто выполните "net stop service-name", чтобы остановить службу или" net start service-name", чтобы запустить службу. введите "net start" в консоли (cmd.exe) для того, чтобы перечислить все услуги.

вам нужны права администратора, чтобы включить / отключить службы.