0

我正在开发一个 Windows 服务,它可以获取它正在运行的系统上所有 Windows 服务的安装位置。我试图从注册表中获取位置,但那里的名称与 C# 对象返回的名称不一致。有什么指导方针吗?

4

3 回答 3

2

我倾向于使用 ServiceController 来查找每个已安装的服务,然后在 Registry 中查找路径。

foreach (ServiceController c in ServiceController.GetServices())
{
     Console.WriteLine(c.DisplayName + " " + c.ServiceName);
}

实际上,现在我用谷歌搜索它,我发现这个解决方案做的事情非常相似。

于 2012-06-27T06:08:06.487 回答
0

如果您只需要查找所有 Windows 服务的信息,请不要开发 Windows 服务。只需制作一个使用 WMI(Windows Management Instrumentation)的简单软件。链接WMI 和服务为您提供了一个想法。该示例是用 VB 脚本编写的,但您可以在 .NET 中执行类似的操作。

于 2012-06-27T05:34:49.157 回答
-3

首先你的想法是错误的。这将导致不同操作系统中的访问问题。您必须安装在程序文件中并将其注册为服务。

PS 大多数 Windows 服务从 System32 文件夹运行

于 2012-06-27T05:18:27.630 回答