在应用程序启动时禁用Windows服务

由于VLC冲突,我必须在启动应用程序时closuresWindows高级文本服务。 有没有特别的API? 它会为用户使用默认权限?

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”启动服务。 在控制台(cmd.exe)中键入“net start”以列出所有服务。

您需要管理员权限才能启用/禁用服务。