Process searchSonProcess(int processId)
{var myId = processId;
var query = string.Format("SELECT ProcessId FROM Win32_Process WHERE ParentProcessId = {0}", myId);
var search = new ManagementObjectSearcher("root\\CIMV2", query);
var results = search.Get().GetEnumerator();
if (!results.MoveNext()) throw new Exception("Huh?");
var queryObj = results.Current;
uint sonId = (uint)queryObj["ProcessId"];
var sonProcess = Process.GetProcessById((int)sonId);
return sonProcess;
}
Process searchParentProcess(int processId)
{
var myId = processId;
var query = string.Format("SELECT ParentProcessId FROM Win32_Process WHERE ProcessId= {0}", myId);
var search = new ManagementObjectSearcher("root\\CIMV2", query);
var results = search.Get().GetEnumerator();
if (!results.MoveNext()) throw new Exception("Huh?");
var queryObj = results.Current;
uint parentId = (uint)queryObj["ParentProcessId"];
var parent = Process.GetProcessById((int)parentId);
return parent;
}