Получение информации о процессе в .NET - PullRequest
0 голосов
/ 13 января 2009

Дубликат этого вопроса .

update - Это не точный дубликат. Смотрите мое решение.

Я вижу процесс java.exe в проводнике процессов, и при двойном щелчке по нему отображается рабочий каталог и аргументы стартовой командной строки.

Из .NET я запускаю следующий код и получаю процесс с тем же PID, но указанные выше поля пусты. Видимо, это задокументировано .

foreach (Process process in Process.GetProcessesByName("java"))
{ 
  ...
}

Так как получить правильные значения полей startinfo, не заглядывая в память процесса вручную (другими словами - я хотел бы украсть этот код откуда-то, а не взламывать память процесса самостоятельно) .

Ответы [ 2 ]

0 голосов
/ 14 января 2009

Я написал некоторый код для этого ( сообщение в блоге и прямая ссылка на zip ).

Короче говоря: этот вопрос очень помог. Я взял код CodeProject и обернул его в утилиту командной строки, а затем в оболочку C #.

0 голосов
/ 13 января 2009

Согласно сообщению, которое вы указали в своем вопросе, способ сделать это - заглянуть в память процесса. Классы .NET НЕ будут загружать данные, так как вы не запустили процесс из .NET.

...