Допустим, что я пытаюсь создать новый процесс с помощью следующего кода:Получение PID процесса, созданного в C#
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.WorkingDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
p.StartInfo.FileName = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\AwesomeFile.exe";
p.StartInfo.Arguments = "parameter1 parameter2";
p.StartInfo.CreateNoWindow = true;
p.Start();
и справа в следующей строке, я постараюсь, чтобы получить PID этого процесса с помощью следующей строки:
MessageBox.Show(p.Id);
Эта линия не дает мне «нет процесс связан с этим объектом.» ошибка. Любая идея о том, почему эта ошибка возникает?
Благодарим за отзыв. Есть ли способ идентифицировать разные процессы с тем же именем? Допустим, что у меня два процесса iexplore, оба изначально выполнялись с разными URL-адресами в качестве параметров. Как я узнаю, какой из них в массиве? – screenshot345
Я заметил эту команду: System.Diagnostics.Process.GetProcessesByName («ProcessName») [0] .StartInfo , который включает параметр аргумент, который был бы большим, но это оказывается пустой на файл, который не был выполненный C#. Есть ли способ исправить это? – screenshot345