2012-05-15 5 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 ") будет выдавать ManagementException ..

В моем случае мне нужно назначить путь HardCoded, если услуга недоступна. Как достичь этого ?? Пожалуйста, руководство ...

ответ

0

Возможно, вы можете использовать блок try вокруг своего вызова WMiObject.GetPropertyValue и назначить постоянное значение в блоке 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 
} 
Смежные вопросы