public static ServiceState GetServiceStatus(string ServiceName) { ServiceState serviceStatus; IntPtr intPtr = ServiceInstaller.OpenSCManager(ServiceManagerRights.Connect); try { IntPtr intPtr1 = ServiceInstaller.OpenService(intPtr, ServiceName, ServiceRights.QueryStatus); if (intPtr1 != IntPtr.Zero) { try { serviceStatus = ServiceInstaller.GetServiceStatus(intPtr1); } finally { ServiceInstaller.CloseServiceHandle(intPtr); } } else { serviceStatus = ServiceState.NotFound; } } finally { ServiceInstaller.CloseServiceHandle(intPtr); } return(serviceStatus); }