Im Namespace System.ServiceProcess
gibt es irgendeine Art von Enumeration oder ein anderes direktes Mitglied, um den Starttyp eines Dienstes (Auto, Verzögerte Auto, On Demand, Deaktiviert) eines ServiceController
zu bestimmen?Windows-Starttyp erhalten?
Die Idee ist, ein verfügbares Mitglied dieses Namespace (oder anderen Namespace) der .NET-Framework-Klassenbibliothek zu verwenden, um dieses Ding zu bestimmen, anstatt in der Betriebssystemregistrierung oder WMI nach dem Starttyp des Dienstes zu suchen, weil ich könnte Tun Sie das, ich frage nur, ob das .NET-Framework eine einfachere Möglichkeit bietet, dieses Ding zu bestimmen.
Pseudo-Code in VB.Net geschrieben, aber ich konnte ein C# Ansatz verwalten zu:
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
[Ja] (https://msdn.microsoft.com/en-us/library /system.serviceprocess.servicestartmode%28v=vs.110%29.aspx). –
@TheBlueDog Obwohl es tatsächlich diese Aufzählung gibt, können Sie sie nicht zum Bestimmen des StartTyps eines Dienstes verwenden. Es wird nur zum Installieren von Diensten verwendet. – sloth
@sloth glaubst du, ich könnte einen Trick machen, um einen 'Servicecontroller' in' ServiceInstaller' zu verwandeln, nur um '' ServiceStartMode' 'abzurufen? vielleicht habe ich eine blöde Sache gesagt aber es sollte eine Umgehungslösung existieren, um den Startmodus für einen vorhandenen Dienst unter diesem Namespace abzurufen! @Der Blaue Hund danke für die Info! – ElektroStudios