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.