如何验证Services.msc中是否存在服务

时间:2012-05-15 16:16:43

标签: c# wmi

我使用以下代码来获取服务的路径......

 string ServicePath = string.Format("Win32_Service.Name=\"{0}\"", "MyService");
 var WMiObject = new ManagementObject(ServicePath);
 string PathName = (string)WMiObject.GetPropertyValue("PathName");

现在如果服务不可用,则调用wmiObject.getPropertyValue(“PathName”) 将抛出ManagementException ..

在我的情况下,如果服务不可用,我需要分配HardCoded路径。 如何实现? 请指导......

2 个答案:

答案 0 :(得分:2)

string Name = "MyService";
ServiceController service = ServiceController
                        .GetServices()
                        .Where(s => s.ServiceName == Name).FirstOrDefault();

if(null != service)
{
    // service exists
}

答案 1 :(得分:0)

您可以在WMiObject.GetPropertyValue调用周围使用try块,并在catch块中分配常量值。

string PathName;
try
{
    PathName = (string)WMiObject.GetPropertyValue("PathName");
}
catch (ManagementException)
{
    PathName = "my constant path value";
}