Use
ServiceController class (requires
System.ServiceProcess reference).
This code prints all services with all their depending-on services:
static void Main(string[] args)
{
System.ServiceProcess.ServiceController[] services = System.ServiceProcess.ServiceController.GetServices();
int nameLen = 0;
for (int i = 0; i < services.Length; i++)
nameLen = Math.Max(nameLen, services[i].ServiceName.Length);
string fmt = "{0," + nameLen.ToString() + "} ->";
for (int i = 0; i < services.Length; i++)
{
Console.Write(fmt, services[i].ServiceName);
System.ServiceProcess.ServiceController[] parents = services[i].ServicesDependedOn;
for (int j = 0; j < parents.Length; j++)
{
Console.Write("{0}", j == 0 ? " " : ", ");
try
{
Console.Write("{0}", parents[j].ServiceName);
}
catch
{
Console.Write("<N/A>");
}
}
Console.WriteLine();
}
}