Ottenere un pid di un processo creato in C #

Diciamo che sto provando a creare un nuovo processo con il seguente codice:

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(); 

e proprio nella riga successiva, cercherò di ottenere un pid di quel processo con la seguente riga:

 MessageBox.Show(p.Id); 

Questa linea mi sta dando “Nessun processo è associato con questo object”. errore. Qualche idea sul perché questo errore si verifica?

Fai questo System.Diagnostics.Process.GetProcessesByName (“nomedel processo”) [0] .Id.

Controllare il valore restituito da Process.Start . In alcuni casi, Process.Start può restituire false, nel qual caso nessun ID verrà associato ad esso.