【问题标题】:Can not access the windows service description through the service controller in VB.NetVB.Net中无法通过服务控制器访问windows服务描述
【发布时间】:2013-04-24 09:39:30
【问题描述】:

我的公司有这个 Windows 服务:

我想在后面的代码中获取服务描述!但由于某种原因,它没有返回服务描述。

谁能帮帮我。

这是我的代码,以及它返回的内容:

Dim MyServices As ServiceController = New ServiceController("AccTech Exchange Rate Import")
    Dim Status As String = MyServices.Status.ToString
    Dim Name As String = MyServices.ServiceName

以及 MyService 变量返回的内容。

我如何从这里获取服务描述?

问候,

编辑:

这是 Miki Shah 为我指明正确方向后的代码!

Dim MyServices As ServiceController = New ServiceController("AccTech Exchange Rate Import")

Dim Status As String = MyServices.Status.ToString
Dim Name As String = MyServices.ServiceName
Dim Description As String

Dim objPath As String = String.Format("Win32_Service.Name='{0}'", Name)
Using service As New ManagementObject(New ManagementPath(objPath))
    Description = service("Description")
End Using

【问题讨论】:

  • 也许你可以使用 System.ServiceProcess.ServiceInstaller 类获取 Decription。
  • 我现在试试,给个答复。并感谢您的快速响应
  • edit : 让安装程序使用所选服务的代码看起来如何?

标签: vb.net windows-services servicecontroller


【解决方案1】:

您可以通过以下方式获取,并且必须添加 System.Management 的引用

string serviceName = MyServices.ServiceName
string objPath = string.Format("Win32_Service.Name='{0}'", serviceName);
using (ManagementObject service = new ManagementObject(new ManagementPath(objPath)))
{
    Console.WriteLine(service["Description"]);
}

【讨论】:

  • 这是 C#,我似乎无法在 vb.net 中获取 Managmentobject ......而且我不完全理解这段代码?如果你愿意解释。并感谢您的努力。
  • 没关系,我得到了代码,但我还是不明白,这段代码是做什么的?我要将此服务作为属性赋予我的变量吗?
  • 1.您必须添加 System.Management 引用,2. 代码使用主 ManagementObject 用于获取与系统相关的信息。这里我们有服务名称,现在我们使用 ManagmentObject 类获取服务信息。 WMI 过程非常好。如果您不知道这个请参考msdn.microsoft.com/en-us/library/dwd0y33x.aspx
猜你喜欢
  • 2016-12-09
  • 1970-01-01
  • 1970-01-01
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多