7
votes

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

à cause de conflit VLC , je dois désactiver le texte avancé Windows Advanced Services de mon lancement de la demande. Y a-t-il une API spéciale pour cela? Fonctionnera-t-il pour l'utilisateur avec des droits par défaut?


1 commentaires

Ce n'est pas vraiment poli de désactiver les services qui ne sont pas les vôtres; Peut-être que l'utilisateur a besoin de ce service en cours d'exécution. Vous devez au moins informer l'utilisateur quelque part (écran d'aide, readme, etc.).


5 Réponses :


0
votes

Vous pouvez utiliser WMI pour cela.

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


1 commentaires

Cet article doit être copié / collé dans cette réponse. Cette page n'existe plus malheureusement et la machine de navigager est en panne pour moi.



1
votes

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


1 commentaires

Servicecontroller peut signaler si le service est désactivé ou non, mais les propriétés sont en lecture seule et ne permettent pas de désactiver tout service.



0
votes

Il suffit d'exécuter "NET STOP-NAME-NAME" pour arrêter un service ou "NET START NAME-NAME" pour démarrer un service. Tapez "NET Démarrer" dans la console (CMD.EXE) afin de répertorier tous les services.

Vous avez besoin de privilèges d'administration afin de activer / désactiver les services.


0 commentaires

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

1 commentaires

Pour le code correct: _servicecontroller.serviceHandle! = Null est remplacé par ! _ ServiceController.servicehandle.isinvalid && _servicecontroller.status! = ServiceControlStatus.stopped



31
votes

La question est intitulée "Désactiver le service Windows ..." mais les réponses Tout indiquer comment arrêter un service.

La plupart de ce que vous trouverez sur Google, c'est que vous pouvez mettre à jour le registre pour désactiver quelque chose Comme ceci: p>

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


1 commentaires

+1 C'est la seule réponse qui répond réellement à la question