실제로 루핑은 다음과 같습니다.
foreach (ServiceController SC in ServiceController.GetServices())
은 응용 프로그램이 실행중인 계정에 서비스 속성을 볼 수있는 권한이없는 경우 액세스가 거부 된 예외를 throw 할 수 있습니다. 반면에, 당신은 안전하게 같은 이름을 가진 서비스가 존재하지 않는 경우에도이 작업을 수행 할 수 있습니다
ServiceController SC = new ServiceController("AnyServiceName");
그러나 서비스가 InvalidOperationException이 발생합니다 존재하지 않는 경우 해당 속성에 접근. 그래서 여기에 서비스가 설치되어 있는지 여부를 확인하기 위해 안전한 방법 :
ServiceController SC = new ServiceController("MyServiceName");
bool ServiceIsInstalled = false;
try
{
// actually we need to try access ANY of service properties
// at least once to trigger an exception
// not neccessarily its name
string ServiceName = SC.DisplayName;
ServiceIsInstalled = true;
}
catch (InvalidOperationException) { }
finally
{
SC.Close();
}
+1 재미있는 ... –
감사합니다 - 내가 필요로 그냥 뭐! –
+1 화려한! 그리고 고마워. –