7

由于VLC 冲突,我必须在应用程序启动时关闭 Windows 高级文本服务。有什么特殊的API吗?它适用于具有默认权限的用户吗?

4

5 回答 5

32

问题的标题是“禁用 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");
于 2011-04-02T00:51:24.550 回答
2
ServiceController _ServiceController = new ServiceController([NameService]);
if (!_ServiceController.ServiceHandle.IsInvalid) 
{
     _ServiceController.Stop();
     _ServiceController.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromMilliseconds(uConstante.CtTempoEsperaRespostaServico));
}
于 2010-06-16T11:37:06.463 回答
0

您可以为此使用 WMI。

看这里,例如:http ://www.csharpfriends.com/Articles/getArticle.aspx?articleID=114

于 2010-06-16T11:01:07.433 回答
0

你可以使用这个ServiceController类。链接的文档页面中有代码示例。

于 2010-06-16T11:20:03.800 回答
0

只需执行“net stop service-name”来停止服务或“net start service-name”来启动服务。在控制台 (cmd.exe) 中键入“net start”以列出所有服务。

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

于 2010-06-16T11:32:31.620 回答