CClash.ProcessUtils.GetParentProcessName C# (CSharp) Method

GetParentProcessName() public method

public GetParentProcessName ( int childpid ) : string
childpid int
return string
        public string GetParentProcessName(int childpid)
        {
            var query = string.Format("SELECT ParentProcessId FROM Win32_Process WHERE ProcessId = {0}", childpid);
            var search = new ManagementObjectSearcher("root\\CIMV2", query);
            var results = search.Get().GetEnumerator();
            if (!results.MoveNext()) return null;
            var queryObj = results.Current;
            uint parentId = (uint)queryObj["ParentProcessId"];
            if (parentId > 0)
            {
                try
                {
                    var parent = Process.GetProcessById((int)parentId);
                    return parent.ProcessName;
                }
                catch (InvalidOperationException)
                {
                }
            }
            return null;
        }
    }