Есть ли в пространстве имен System.ServiceProcess
какое-либо перечисление или другой прямой член для определения типа запуска службы (автоматический, отложенный автоматический, по запросу, отключенный) ServiceController
?
Идея состоит в том, чтобы использовать доступный член этого пространства имен (или другого пространства имен) библиотеки классов .NET Framework, чтобы определить это, вместо того, чтобы искать в реестре ОС или WMI тип запуска службы, потому что я мог бы сделать это, я Я только спрашиваю, предоставляет ли .NET framework более простой способ определить это.
Псевдокод, написанный на VB.Net, но я мог бы справиться и с подходом С#:
Public Shared Function GetStartType(ByVal svcName As String) As ServiceControllerStatus
Dim svc As ServiceController = (From service As ServiceController In ServiceController.GetServices()
Where service.ServiceName.Equals(svcName, StringComparison.OrdinalIgnoreCase)
).FirstOrDefault
If svc Is Nothing Then
Throw New ArgumentException("Any service found with the specified name.", "svcName")
Else
Using svc
' Note that StartTypeEnumValue does not exists.
Return svc.StartTypeEnumValue
End Using
End If
End Function
Servicecontroller
вServiceInstaller
только для того, чтобы получитьServiceStartMode
? возможно, я сказал глупость, но должен существовать обходной путь для получения режима запуска для существующей службы в этом пространстве имен!. @The Blue Dog спасибо за информацию! - person ElektroStudios   schedule 14.04.2015ManagementObjectSearcher
или реестр, чтобы получить тип запуска службы. - person sloth   schedule 14.04.2015