Czy istnieje metoda .NET (C#) lub wywołanie interfejsu API, które można użyć do sprawdzenia, czy usługa systemu Windows jest wyłączona? Odpowiedni artykuł MSDN is here.Zapytanie, czy usługa systemu Windows jest wyłączona (bez korzystania z Rejestru)?
Chcę uniknąć bezpośredniego wpisywania rejestru. Poniżej znajduje się część kodu, którego teraz używam (i działa). Jednak szukam czegoś bardziej eleganckiego i mniej inwazyjnego.
const String basepathStr = @"System\CurrentControlSet\services\";
String subKeyStr = basepathStr + servicenameStr;
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(subKeyStr))
{
return (int) key.GetValue("Start");
}
Zrobiłem znaleźć simliar question ale miałem nadzieję na lepszą odpowiedź ponieważ odpowiedzi są prawdopodobnie nieaktualne (3 lata minęły).
Czy odnoszą się Państwo do tego: http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontrollerstatus.aspx? Jeśli tak, to mówi mi wszystko, ALE czy usługa jest wyłączona ... –
Jak pisałem w mojej edycji, tak, odwołuję się do tej klasy, ale mam też na myśli dodatkowy post na blogu, który zawiera informacje o tym, jak użyj 'ServiceController' wraz z niektórymi wywołaniami natywnymi, aby uzyskać to, czego chcesz, bez uzyskiwania dostępu do rejestru. –