Désactiver le service Windows au lancement de l’application

En raison d’un conflit VLC, je dois désactiver Windows Advanced Text Services lors du lancement de mon application. Y a-t-il une API spéciale pour cela? Cela fonctionnera-t-il pour les utilisateurs avec des droits par défaut?

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

La question s’intitule “Désactiver le service Windows …” mais les réponses indiquent toutes comment arrêter un service.

La plupart de ce que vous trouverez sur Google est que vous pouvez mettre à jour le registre pour désactiver un service en utilisant quelque chose comme ceci:

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

Je n’ai pas essayé cette méthode mais il semble que cela fonctionnera. Je suis également venu avec une méthode différente qui utilise sc.exe pour désactiver le service:

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

Vous pouvez utiliser la classe ServiceController pour cela. Il existe des exemples de code dans la page de documentation liée.

Vous pouvez utiliser WMI pour cela.

Regardez ici, par exemple: http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=114

il suffit d’exécuter “net stop service-name” pour arrêter un service ou “net start service-name” pour démarrer un service. tapez “net start” dans la console (cmd.exe) afin de répertorier tous les services.

Vous avez besoin de privilèges d’administrateur pour activer / désactiver les services.