2015-03-04 4 views
0

Я ищу способ, чтобы увидеть, если процесс начинается/запускает другой processes.Google хром является хорошим примером того, что я ищу:C# Получить процессы открыты другим процессом

Process p = new Process(); 
p.StartInfo.FileName = "chrome.exe"; 
p.Start(); 

When начальный хром у него будет PID, но он кажется, как этот процесс просто запускает другие (фоновые) процессы, а затем сразу заканчивается (нет ссылки PID?).

Я мог предположить, что любой «хромированный» процесс с StartTime> p.StartTime может быть частью запуска, но я не думаю, что это лучший способ пойти. Этот процесс может, например, запускать другие процессы с разными именами.

Есть ли способ «следить» за всем, что срабатывает при первом запуске процесса?

+1

Может быть, вас интересует примерно следующее: http://stackoverflow.com/questions/545449/process-tree –

+1

Просто соедините части Lego вместе. [Этот] (http://stackoverflow.com/a/1986856/17034) и [этот] (http://stackoverflow.com/a/2533287/17034). –

ответ

1

Вы можете P/Invoke NtQueryInformationProcess API-функцию для поиска процессов родительскими дескрипторами.

+0

возможно полезно: http://stackoverflow.com/questions/394816/how-to-get-parent-process-in-net-in-managed-way – sithereal

 Смежные вопросы

  • Нет связанных вопросов^_^