How to get parent process in .NET in managed way

后端 未结 6 712
伪装坚强ぢ
伪装坚强ぢ 2020-11-22 03:39

I was looking a lot for method to get parent process in .NET, but found only P/Invoke way.

6条回答
  •  难免孤独
    2020-11-22 04:25

    This way:

    public static Process GetParent(this Process process)
    {
      try
      {
        using (var query = new ManagementObjectSearcher(
          "SELECT * " +
          "FROM Win32_Process " +
          "WHERE ProcessId=" + process.Id))
        {
          return query
            .Get()
            .OfType()
            .Select(p => Process.GetProcessById((int)(uint)p["ParentProcessId"]))
            .FirstOrDefault();
        }
      }
      catch
      {
        return null;
      }
    }
    

提交回复
热议问题