Я не уверен, но если вы не можете сделать это с помощью классов, встроенных в .net, вероятно, единственный способ - использовать WMI.
Это класс Win32Service:
class Win32_Service : Win32_BaseService
{
boolean AcceptPause;
boolean AcceptStop;
string Caption;
uint32 CheckPoint;
string CreationClassName;
string Description;
boolean DesktopInteract;
string DisplayName;
string ErrorControl;
uint32 ExitCode;
datetime InstallDate;
string Name;
string PathName;
uint32 ProcessId;
uint32 ServiceSpecificExitCode;
string ServiceType;
boolean Started;
string StartMode;
string StartName;
string State;
string Status;
string SystemCreationClassName;
string SystemName;
uint32 TagId;
uint32 WaitHint;
};
И это то, что вы спрашиваете:
string StartName;
Я использовал PowerShell для получения данных об услуге «Удаленный рабочий стол» на своем ноутбуке, и я получил больше таких данных (некоторые из этих данных являются свойствами Win32_BaseService, а не Win32Service):
DesktopInteract : False
DisconnectedSessions : 1
DisplayName : Remote desktop services
ErrorControl : Normal
ExitCode : 1077
InstallDate :
Name : TermService
PathName : C:\Windows\System32\svchost.exe -k NetworkService
ProcessId : 0
ServiceSpecificExitCode : 0
ServiceType : Share Process
Started : False
StartMode : Manual
StartName : NT Authority\NetworkService
State : Stopped
Status : OK
SystemCreationClassName : Win32_ComputerSystem
SystemName : NOTEBOOK
TagId : 0
TotalSessions : 2
WaitHint : 0
Я не могу помочь с WMI в C #. Возможно, вы найдете свойство StartName где-то в классе, который вы используете (я не знаю, что это за класс, потому что вы не написали).