2012-05-15 23 views
0

是否存在服务我使用下面的代码来获取服务的路径...如何验证SERVICES.MSC

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

现在,如果服务不可用,则呼叫wmiObject.getPropertyValue(” PathName“) 将抛出管理例外..

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

回答

0

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

string PathName; 
try 
{ 
    PathName = (string)WMiObject.GetPropertyValue("PathName"); 
} 
catch (ManagementException) 
{ 
    PathName = "my constant path value"; 
} 
2
string Name = "MyService"; 
ServiceController service = ServiceController 
         .GetServices() 
         .Where(s => s.ServiceName == Name).FirstOrDefault(); 

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