WMI를 사용해야 할 경우 Win32_Process 클래스에는 부모 프로세스 ID가 포함됩니다.
SELECT * FROM Win32_Process Where ParentProcessId = n
는 서비스의 프로세스 ID와 N 교체 : 그래서 WQL 쿼리는 같은 (.NET에서 WMI에 대한 System.Management 네임 스페이스 참조). (Arsen Zahray에 의해 코드 기준)
편집 샘플 코드 :
static List<Process> GetChildPrecesses(int parentId) {
var query = "Select * From Win32_Process Where ParentProcessId = "
+ parentId;
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection processList = searcher.Get();
var result = processList.Select(p =>
Process.GetProcessById(Convert.ToInt32(p.GetPropertyValue("ProcessId")));
).ToList();
return result;
}
이 목록은 32 비트 프로세스에만 해당합니까 ?? –
@ It'satrap : no (부모가 32 비트이고 자식이 64 인 경우에만 체크 됨). – Richard
고마워요. 나는 나 자신도 확인했다. –