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.