Отключить службу Windows при запуске приложения - PullRequest
6 голосов
/ 16 июня 2010

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

Ответы [ 5 ]

26 голосов
/ 02 апреля 2011

Вопрос называется «Отключить службу 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");
2 голосов
/ 16 июня 2010
ServiceController _ServiceController = new ServiceController([NameService]);
if (!_ServiceController.ServiceHandle.IsInvalid) 
{
     _ServiceController.Stop();
     _ServiceController.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromMilliseconds(uConstante.CtTempoEsperaRespostaServico));
}
1 голос
/ 16 июня 2010

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

0 голосов
/ 16 июня 2010

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

Для включения / отключения служб вам необходимы права администратора.

0 голосов
/ 16 июня 2010

Для этого вы можете использовать WMI.

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

...