C#:如何使用ServiceController.GetServices()仅为特定进程名收集服务

C#:如何使用ServiceController.GetServices()仅为特定进程名收集服务,c#,C#,我能够使用“System.Diagnostics”命名空间下的process.GetProcesses()获取所有进程 是否有任何方法可以通过使用“ServiceController.GetServices()”获取特定进程中的所有服务名称 不,没有办法,因为您没有特殊的属性或属性。但您可以使用ManagementObjectSearcher foreach (var theProcess in Process.GetProcesses()) { if (theProcess.Proce

我能够使用“System.Diagnostics”命名空间下的process.GetProcesses()获取所有进程

是否有任何方法可以通过使用“ServiceController.GetServices()”获取特定进程中的所有服务名称


,没有办法,因为您没有特殊的属性或属性。但您可以使用
ManagementObjectSearcher

foreach (var theProcess in Process.GetProcesses())
{
    if (theProcess.ProcessName.ToUpper() == "SVCHOST")
    {
        ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", string.Format("SELECT * FROM Win32_Service " + "where ProcessId={0}", theProcess.Id));
        foreach (ManagementObject mo in mos.Get())
        {
            Console.WriteLine("Name: " + mo["Name"]);
        }
    }
}

,没有办法,因为您没有特殊的属性或属性。但您可以使用
ManagementObjectSearcher

foreach (var theProcess in Process.GetProcesses())
{
    if (theProcess.ProcessName.ToUpper() == "SVCHOST")
    {
        ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", string.Format("SELECT * FROM Win32_Service " + "where ProcessId={0}", theProcess.Id));
        foreach (ManagementObject mo in mos.Get())
        {
            Console.WriteLine("Name: " + mo["Name"]);
        }
    }
}

是的,谢谢。我知道这一点。我只是想消灭维米耶,谢谢。我知道这一点。我只是想消除WMI